{"cells":[{"cell_type":"markdown","source":["Copyright 2022 Google LLC. SPDX-License-Identifier: Apache-2.0\n","\n","Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License. You may obtain a copy of the License at\n","\n","https://www.apache.org/licenses/LICENSE-2.0\n","\n","Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License."],"metadata":{"id":"bW-f831lH0Ba"}},{"cell_type":"markdown","source":["# Experiment: RoboCodeGen Benchmark\n","\n","This notebook is a part of the open-source code release associated with the paper:\n","\n","[Code as Policies: Language Model Programs for Embodied Control](https://code-as-policies.github.io/)\n","\n","This notebook gives the results corresponding to Table II in the paper which evaluates different code-gen approaches on a custom robotics-themed benchmark.\n","\n","1) Please obtain an OpenAI API Key here:\n","https://openai.com/blog/openai-api/\n","\n","2) Gain Codex access by joining the waitlist here:\n","https://openai.com/blog/openai-codex/\n","\n","Note due to current rate limiting of the Codex API, this entire notebook may take a few hours to finish."],"metadata":{"id":"fuJ3PvxuHz5f"}},{"cell_type":"code","source":["openai_api_key = 'YOUR KEY HERE'"],"metadata":{"id":"9Db6zvfgIKv_"},"execution_count":null,"outputs":[]},{"cell_type":"markdown","metadata":{"id":"E7kG_STAo6Wb"},"source":["# Setup"]},{"cell_type":"code","source":["from google.colab import output\n","output.enable_custom_widget_manager()"],"metadata":{"id":"UguFRdPFLHgr"},"execution_count":null,"outputs":[]},{"cell_type":"code","execution_count":null,"metadata":{"id":"Yy5XfT54odWJ"},"outputs":[],"source":["! pip install numpy scipy shapely openai pygments RestrictedPython > /dev/null 2>&1\n","\n","import openai\n","openai.api_key = openai_api_key"]},{"cell_type":"code","execution_count":null,"metadata":{"id":"Y2uKEB3Sooqg"},"outputs":[],"source":["from copy import copy\n","from time import sleep\n","from tqdm.auto import trange, tqdm\n","\n","import ast\n","import astunparse\n","\n","from pygments import highlight\n","from pygments.lexers import PythonLexer\n","from pygments.formatters import TerminalFormatter\n","\n","def exec_safe(code_str, gvars, lvars):\n","  banned_phrases = ['import', '__']\n","  for phrase in banned_phrases:\n","    assert phrase not in code_str\n","  \n","  empty_fn = lambda *args, **kwargs: None\n","  custom_gvars = merge_dicts([\n","      gvars,\n","      {'exec': empty_fn, 'eval': empty_fn}\n","  ])\n","  exec(code_str, custom_gvars, lvars)\n","\n","default_query_kwargs = {\n","    'engine': 'code-davinci-002',\n","    # 'engine': 'text-davinci-002',\n","    'max_tokens': 512,\n","    'temperature': 0,\n","    'frequency_penalty': 0\n","}\n","\n","def lmp(base_prompt, query, stop_tokens=None, log=True, return_response=False, query_kwargs=None):\n","    new_prompt = f'{base_prompt}\\n{query}'\n","    use_query_kwargs = copy(default_query_kwargs)\n","    if query_kwargs is not None:\n","      use_query_kwargs.update(query_kwargs)\n","    response = openai.Completion.create(\n","        prompt=new_prompt, stop=stop_tokens, **use_query_kwargs\n","    )['choices'][0]['text'].strip()\n","\n","    if log:\n","      print(query)\n","      print(response)\n","\n","    if return_response:\n","      return response\n","\n","def lmp_fgen(prompt, f_name, f_sig, stop_tokens=['# define function:', '# example:'], recurse=False, \n","             context_vars=None, bug_fix=False, log=True, return_src=False, query_kwargs=None, info=''):\n","    query = f'# define function: {f_sig}.'\n","    if info:\n","      query = f'{query}\\n# info: {info}.'\n","    f_src = lmp(prompt, query, stop_tokens=stop_tokens, log=False, return_response=True, query_kwargs=query_kwargs)\n","    if bug_fix:\n","        sleep(6)\n","        f_src = openai.Edit.create(\n","          model='code-davinci-edit-001',\n","          input='# ' + f_src,\n","          temperature=0,\n","          instruction=\"Fix syntax errors. Keep same inputs and outputs. Only small changes. No comments.\",\n","        )['choices'][0]['text'].strip()\n","\n","    if context_vars is None:\n","        context_vars = {}\n","    gvars = context_vars\n","    lvars = {}\n","\n","    f_success = True\n","    try:\n","      exec_safe(f_src, gvars, lvars)\n","      f = lvars[f_name]\n","    except Exception as e:\n","      print(e)\n","      f = lambda *args, **kargs: None   \n","      f_success = False \n","\n","    if recurse and f_success:\n","      # recursively define child_fs in the function body if needed\n","      f_def_body = astunparse.unparse(ast.parse(f_src).body[0].body)\n","      potential_child_fs, potential_child_f_sigs = {}, {}\n","      f_parser = FunctionParser(potential_child_fs, potential_child_f_sigs)\n","      f_parser.visit(ast.parse(f_def_body))\n","      for potential_child_f_name, potential_child_f_sig in potential_child_f_sigs.items():\n","        if potential_child_f_name in potential_child_fs:\n","          potential_child_fs[potential_child_f_name] = potential_child_f_sig\n","\n","      child_fs, child_f_srcs = {}, {}\n","      for child_f_name, child_f_sig in potential_child_fs.items():\n","        all_vars = merge_dicts([context_vars, child_fs])\n","        if not var_exists(child_f_name, all_vars):\n","          child_f, child_f_src = lmp_fgen(\n","              prompt, child_f_name, child_f_sig, \n","              stop_tokens=stop_tokens, \n","              context_vars=all_vars, \n","              bug_fix=bug_fix,\n","              log=False, \n","              recurse=True,\n","              return_src=True,\n","              query_kwargs=query_kwargs\n","            )\n","\n","          child_fs[child_f_name] = child_f\n","          child_f_srcs[child_f_name] = child_f_src\n","\n","      if len(child_fs) > 0:\n","        # redefine parent f so newly created child_fs are in scope\n","        gvars = merge_dicts([context_vars, child_fs])\n","        lvars = {}\n","      \n","        exec_safe(f_src, gvars, lvars)\n","        \n","        f = lvars[f_name]\n","\n","    if log:\n","        to_print = highlight(f'{query}\\n{f_src}', PythonLexer(), TerminalFormatter())\n","        print(f'LMP FGEN created:\\n\\n{to_print}\\n')\n","\n","    if return_src:\n","        return f, f_src\n","    return f\n","\n","def lmp_batch(base_prompt, cmds, stop_tokens=None, strip=False, batch_size=20, rate_limit_time=6, query_kwargs=None):\n","    prompts = [\n","      f'{base_prompt}\\n{cmd}'\n","      for cmd in cmds\n","    ]\n","\n","    use_query_kwargs = copy(default_query_kwargs)\n","    if query_kwargs is not None:\n","      use_query_kwargs.update(query_kwargs)\n","\n","    responses = []\n","    for start_idx in trange(0, len(prompts), batch_size):\n","        end_idx = min(start_idx + batch_size, len(prompts))\n","        batch_prompts = prompts[start_idx : end_idx]\n","\n","        raw_responses_batch = openai.Completion.create(\n","            prompt=batch_prompts, stop=stop_tokens, **use_query_kwargs\n","        )\n","        responses_batch = [\n","            r['text']\n","            for r in raw_responses_batch['choices']\n","        ]\n","\n","        if strip:\n","            responses_batch = [response.strip() for response in responses_batch]\n","        \n","        responses.extend(responses_batch)\n","\n","        if end_idx != len(prompts):\n","            sleep(rate_limit_time)\n","\n","    return responses\n","\n","def lmp_fgen_batch(prompt, f_names, f_sigs, stop_tokens=['# define function:', '# example:'], \n","                   recurse=False, context_vars=None, bug_fix=False, log=True, query_kwargs=None,\n","                   rate_limit_time=6):\n","    queries = [f'# define function: {f_sig}.' for f_sig in f_sigs]\n","    f_srcs_list = lmp_batch(prompt, queries, stop_tokens=stop_tokens, query_kwargs=query_kwargs)\n","    \n","    if bug_fix:\n","        for idx in trange(len(f_srcs_list)):\n","          sleep(rate_limit_time)\n","          f_srcs_list[idx] = openai.Edit.create(\n","            model='code-davinci-edit-001',\n","            input='# ' + f_srcs_list[idx],\n","            temperature=0,\n","            instruction=\"Fix syntax errors. Keep same inputs and outputs. Only small changes. No comments.\",\n","          )['choices'][0]['text'].strip()\n","\n","    f_srcs = {f_name: f_src for f_name, f_src in zip(f_names, f_srcs_list)}\n","\n","    fs = {}\n","    all_child_fs, all_child_f_srcs = {}, {}\n","    for f_name, f_sig, f_src in zip(f_names, f_sigs, f_srcs_list):\n","      if context_vars is None:\n","        context_vars = {}\n","      gvars = merge_dicts([context_vars, fs, all_child_fs])\n","      lvars = {}\n","    \n","      try:\n","        exec_safe(f_src, gvars, lvars)\n","        fs[f_name] = lvars[f_name]\n","      except Exception as e:\n","        print(f_name)\n","        print(f_src)\n","        print(e)\n","        fs[f_name] = lambda *args, **kwargs: None\n","        continue      \n","\n","      # recursively define child_fs in the function body if needed\n","      if recurse:\n","        f_def_body = astunparse.unparse(ast.parse(f_src).body[0].body)\n","        potential_child_fs, potential_child_f_sigs = {}, {}\n","        f_parser = FunctionParser(potential_child_fs, potential_child_f_sigs)\n","        f_parser.visit(ast.parse(f_def_body))\n","        for potential_child_f_name, potential_child_f_sig in potential_child_f_sigs.items():\n","          if potential_child_f_name in potential_child_fs:\n","            potential_child_fs[potential_child_f_name] = potential_child_f_sig\n","\n","        child_fs, child_f_srcs = {}, {}\n","        for child_f_name, child_f_sig in potential_child_fs.items():\n","          all_vars = merge_dicts([context_vars, fs, all_child_fs, child_fs])\n","          if not var_exists(child_f_name, all_vars):\n","            sleep(rate_limit_time)\n","            child_f, child_f_src = lmp_fgen(\n","                prompt, child_f_name, child_f_sig, \n","                stop_tokens=stop_tokens, \n","                context_vars=all_vars, \n","                bug_fix=bug_fix, \n","                log=False,\n","                recurse=True,\n","                return_src=True,\n","                query_kwargs=query_kwargs\n","              )\n","\n","            child_fs[child_f_name] = child_f\n","            child_f_srcs[child_f_name] = child_f_src\n","\n","        if len(child_fs) > 0:\n","          # redefine parent f so newly created child_fs are in scope\n","          gvars = merge_dicts([context_vars, fs, all_child_fs, child_fs])\n","          lvars = {}\n","        \n","          exec_safe(f_src, gvars, lvars)\n","          \n","          fs[f_name] = lvars[f_name]\n","          all_child_fs.update(child_fs)\n","          all_child_f_srcs.update(child_f_srcs)\n","\n","    if log:\n","      for query, f_src in zip(queries, f_srcs):\n","        to_print = highlight(f'{query}\\n{f_src}', PythonLexer(), TerminalFormatter())\n","        print(f'LMP FGEN created:\\n\\n{to_print}\\n')\n","\n","    all_fs = merge_dicts([fs, all_child_fs])\n","    all_f_srcs = merge_dicts([f_srcs, all_child_f_srcs])\n","    f_gens = {\n","        f_name: {\n","            'f': f,\n","            'f_src': all_f_srcs[f_name]\n","        }\n","        for f_name, f in all_fs.items()\n","    }\n","\n","    return f_gens\n","\n","class FunctionParser(ast.NodeTransformer):\n","\n","    def __init__(self, fs, f_assigns):\n","      super().__init__()\n","      self._fs = fs\n","      self._f_assigns = f_assigns\n","\n","    def visit_Call(self, node):\n","        self.generic_visit(node)\n","        if isinstance(node.func, ast.Name):\n","            f_sig = astunparse.unparse(node).strip()\n","            f_name = astunparse.unparse(node.func).strip()\n","            self._fs[f_name] = f_sig\n","        return node\n","\n","    def visit_Assign(self, node):\n","        self.generic_visit(node)\n","        if isinstance(node.value, ast.Call):\n","            assign_str = astunparse.unparse(node).strip()\n","            f_name = astunparse.unparse(node.value.func).strip()\n","            self._f_assigns[f_name] = assign_str\n","        return node\n","\n","def var_exists(name, all_vars):\n","    try:\n","        eval(name, all_vars)\n","    except:\n","        exists = False\n","    else:\n","        exists = True\n","    return exists\n","\n","def merge_dicts(dicts):\n","    return {\n","        k : v \n","        for d in dicts\n","        for k, v in d.items()\n","    }\n","\n","def eval_test(f_sol, f_gen, test_input_args, test_equiv=None):\n","  if test_equiv is None:\n","    test_equiv = lambda out_f_sol, out_f_gen: np.allclose(out_f_sol, out_f_gen)\n","  \n","  test_success = True\n","  for test_input_arg in test_input_args:\n","    out_correct = f_sol(*test_input_arg)\n","    out_f_gen = f_gen(*test_input_arg)\n","\n","    if not test_equiv(out_correct, out_f_gen):\n","      test_success = False\n","      break\n","  return test_success\n","\n","def solve_problems(problems, prompt, context_vars, log=False, recurse=False, bug_fix=False, query_kwargs=None):\n","  f_names = [problem['f_name'] for problem in problems]\n","  f_sigs = [problem['f_sig'] for problem in problems]\n","  f_gens = lmp_fgen_batch(\n","      prompt, f_names, f_sigs, \n","      context_vars=context_vars, bug_fix=bug_fix, recurse=recurse, \n","      log=log, query_kwargs=query_kwargs\n","    )\n","  return f_gens\n","\n","def eval_problems(problems, f_gens):\n","  results = []\n","\n","  for problem in problems:\n","    success = False\n","    info = ''\n","    try:\n","      success = eval_test(problem['f_sol'], f_gens[problem['f_name']]['f'], problem['test_input_args'], problem['test_equiv'])\n","    except Exception as e:\n","      info = str(e)\n","\n","    results.append({\n","        'f_name': problem['f_name'],\n","        'problem': problem,\n","        'f_gen': f_gens[problem['f_name']],\n","        'success': success,\n","        'info': info\n","    })\n","\n","  n_successes = np.sum([r['success'] for r in results])\n","  success_rate = n_successes / len(problems)\n","  print(f'Success rate: {n_successes}/{len(problems)} = {success_rate:.2f}')\n","\n","  return results"]},{"cell_type":"markdown","metadata":{"id":"3mQBQxWyqmO_"},"source":["# Robot Code-Gen Benchmark"]},{"cell_type":"markdown","metadata":{"id":"xOLT_SsTqF8C"},"source":["## Prompt"]},{"cell_type":"code","execution_count":null,"metadata":{"id":"G9ScRsNOqKwH"},"outputs":[],"source":["prompt_f_gen = '''\n","import numpy as np\n","from shapely.geometry import *\n","from shapely.affinity import *\n","from utils import get_obj_outer_pts_np\n","\n","# define function: total = get_total(xs=numbers).\n","def get_total(xs):\n","    return np.sum(xs)\n","\n","# define function: y = eval_line(x, slope, y_intercept=0).\n","def eval_line(x, slope, y_intercept):\n","    return x * slope + y_intercept\n","\n","# define function: pt_np = move_pt_left(pt_np, dist).\n","def move_pt_left(pt_np, dist):\n","    delta = np.array([-dist, 0])\n","    return translate_pt_np(pt_np, delta=delta)\n","\n","# define function: pt_np = move_pt_up(pt_np, dist).\n","def move_pt_up(pt_np, dist):\n","    delta = np.array([0, dist])\n","    return translate_pt_np(pt_np, delta=delta)\n","\n","# define function line = make_line_by_length(length=x).\n","def make_line_by_length(length):\n","  start = np.array([0, 0])\n","  end = np.array([length, 0])\n","  line = make_line(start=start, end=end)\n","  return line\n","\n","# define function: line = make_vertical_line_by_length(length=x).\n","def make_vertical_line_by_length(length):\n","  line = make_line_by_length(length)\n","  vertical_line = rotate(line, 90)\n","  return vertical_line\n","\n","# define function: pt = interpolate_line(line, t=0.5).\n","def interpolate_line(line, t):\n","  pt = line.interpolate(t, normalized=True)\n","  return np.array(pt.coords[0])\n","\n","# example: scale a line by 2 around the centroid.\n","line = make_line_by_length(1)\n","new_shape = scale(line, xfact=2, yfact=2, origin='centroid')\n","\n","# example: rotate a point around origin by 45 degrees.\n","pt = Point([1,1])\n","new_pt = rotate(pt, 45, origin=[0, 0])\n","\n","# example: getting object points of object0.\n","pts_np = get_obj_outer_pts_np('object0')\n","'''.strip()\n","\n","prompt_f_gen_flat = '''\n","import numpy as np\n","from shapely.geometry import *\n","from shapely.affinity import *\n","from utils import get_obj_outer_pts_np\n","\n","# define function: total = get_total(xs=numbers).\n","def get_total(xs):\n","    return np.sum(xs)\n","\n","# define function: y = eval_line(x, slope, y_intercept=0).\n","def eval_line(x, slope, y_intercept):\n","    return x * slope + y_intercept\n","\n","# define function: pt_np = move_pt_left(pt_np, dist).\n","def move_pt_left(pt_np, dist):\n","    return pt_np + [-dist, 0]\n","\n","# define function: pt_np = move_pt_up(pt_np, dist).\n","def move_pt_up(pt_np, dist):\n","    return pt_np + [0, dist]\n","\n","# define function line = make_line_by_length(length=x).\n","def make_line_by_length(length):\n","  line = LineString([[0, 0], [length, 0]])\n","  return line\n","\n","# define function: line = make_vertical_line_by_length(length=x).\n","def make_vertical_line_by_length(length):\n","  line = make_line_by_length(length)\n","  vertical_line = rotate(line, 90)\n","  return vertical_line\n","\n","# define function: pt = interpolate_line(line, t=0.5).\n","def interpolate_line(line, t):\n","  pt = line.interpolate(t, normalized=True)\n","  return np.array(pt.coords[0])\n","\n","# example: scale a line by 2.\n","line = make_line_by_length(1)\n","new_shape = scale(line, xfact=2, yfact=2)\n","\n","# example: rotate a point around origin by 45 degrees.\n","pt = Point([1,1])\n","new_pt = rotate(pt, 45, origin=[0, 0])\n","\n","# example: getting object points of object0.\n","pts_np = get_obj_outer_pts_np('object0')\n","'''.strip()\n","\n","prompt_f_gen_exec = '''\n","import numpy as np\n","from shapely.geometry import *\n","from shapely.affinity import *\n","\n","# define function: total = get_total(xs=numbers).\n","def get_total(xs):\n","    return np.sum(xs)\n","\n","# define function: y = eval_line(x, slope, y_intercept=0).\n","def eval_line(x, slope, y_intercept):\n","    return x * slope + y_intercept\n","\n","# define function: pt = move_pt_left(pt, dist).\n","def move_pt_left(pt, dist):\n","    return pt + [-dist, 0]\n","\n","# define function: pt = move_pt_up(pt, dist).\n","def move_pt_up(pt, dist):\n","    return pt + [0, dist]\n","\n","# define function line = make_line_by_length(length=x).\n","def make_line_by_length(length):\n","  line = LineString([[0, 0], [length, 0]])\n","  return line\n","\n","# define function: line = make_vertical_line_by_length(length=x).\n","def make_vertical_line_by_length(length):\n","  line = make_line_by_length(length)\n","  vertical_line = rotate(line, 90)\n","  return vertical_line\n","\n","# define function: pt = interpolate_line(line, t=0.5).\n","def interpolate_line(line, t):\n","  pt = line.interpolate(t, normalized=True)\n","  return np.array(pt.coords[0])\n","'''.strip()\n","\n","context_vars = {}\n","exec(prompt_f_gen_exec, context_vars)"]},{"cell_type":"markdown","metadata":{"id":"JOOjBLugdMj9"},"source":["## Problems"]},{"cell_type":"code","execution_count":null,"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"executionInfo":{"elapsed":144,"status":"ok","timestamp":1661198668867,"user":{"displayName":"Jacky Liang","userId":"05524594537381871813"},"user_tz":240},"id":"vBdTI5uCZseN","outputId":"8f921da7-cfc5-41dc-e2bd-8dd7cdd7dd9a"},"outputs":[{"output_type":"stream","name":"stdout","text":["n problems: 37\n"]}],"source":["import numpy as np\n","import shapely\n","from shapely.geometry import *\n","from shapely.affinity import *\n","from operator import eq\n","\n","def rotate_pts_around_pts_center_np(pts_np, angle_deg):\n","  angle_rad = np.deg2rad(angle_deg)\n","  centroid = np.mean(pts_np, axis=0)\n","  R = np.array([\n","      [np.cos(angle_rad), -np.sin(angle_rad)], \n","      [np.sin(angle_rad), np.cos(angle_rad)]\n","  ])\n","  new_pts = (pts_np - centroid) @ R.T + centroid\n","  return new_pts\n","\n","def scale_pts_around_centroid_np(pts_np, scale_x=1.5, scale_y=1.5):\n","    centroid = np.mean(pts_np, axis=0)\n","    new_pts = pts_np - centroid\n","    new_pts[:, 0] = new_pts[:, 0] * scale_x\n","    new_pts[:, 1] = new_pts[:, 1] * scale_y\n","    new_pts = new_pts + centroid\n","    return new_pts\n","\n","problems_np = [\n","  {\n","    'f_name': 'get_top_most_idx',\n","    'f_sig': 'idx = get_top_most_idx(points_np)',\n","    'f_sol': lambda points_np: np.argmax(points_np[:, 1]),\n","    'test_input_args': [(np.random.random((10, 2)),) for _ in range(5)],\n","    'test_equiv': np.allclose\n","  },\n","  {\n","    'f_name': 'get_bottom_most_idx',\n","    'f_sig': 'idx = get_bottom_most_idx(points_np)',\n","    'f_sol': lambda points_np: np.argmin(points_np[:, 1]),\n","    'test_input_args': [(np.random.random((10, 2)),) for _ in range(5)],\n","    'test_equiv': np.allclose\n","  },\n","  {\n","    'f_name': 'get_left_most_idx',\n","    'f_sig': 'idx = get_left_most_idx(points_np)',\n","    'f_sol': lambda points_np: np.argmin(points_np[:, 0]),\n","    'test_input_args': [(np.random.random((10, 2)),) for _ in range(5)],\n","    'test_equiv': np.allclose\n","  },\n","  {\n","    'f_name': 'get_right_most_idx',\n","    'f_sig': 'idx = get_right_most_idx(points_np)',\n","    'f_sol': lambda points_np: np.argmax(points_np[:, 0]),\n","    'test_input_args': [(np.random.random((10, 2)),) for _ in range(5)],\n","    'test_equiv': np.allclose\n","  },\n","  {\n","    'f_name': 'get_farthest_idx',\n","    'f_sig': 'idx = get_farthest_idx(points_np, point_np)',\n","    'f_sol': lambda points_np, point_np: np.argmax(np.linalg.norm(points_np - point_np, axis=1)),\n","    'test_input_args': [(np.random.random((10, 2)), np.random.random(2)) for _ in range(5)],\n","    'test_equiv': np.allclose\n","  },\n","  {\n","    'f_name': 'get_closest_idx',\n","    'f_sig': 'idx = get_closest_idx(points_np, point_np)',\n","    'f_sol': lambda points_np, point_np: np.argmin(np.linalg.norm(points_np - point_np, axis=1)),\n","    'test_input_args': [(np.random.random((10, 2)), np.random.random(2)) for _ in range(5)],\n","    'test_equiv': np.allclose\n","  },\n","  {\n","    'f_name': 'get_bbox_xyxy_area',\n","    'f_sig': 'area = get_bbox_xyxy_area(bbox_xyxy)',\n","    'f_sol': lambda bbox_xyxy: (bbox_xyxy[2] - bbox_xyxy[0]) * (bbox_xyxy[3] - bbox_xyxy[1]),\n","    'test_input_args': [(np.random.random(4) + [0, 0, 1, 1],) for _ in range(5)],\n","    'test_equiv': np.allclose\n","  },\n","  {\n","    'f_name': 'bbox_xyxy_contains_pt',\n","    'f_sig': 'contains = bbox_xyxy_contains_pt(bbox_xyxy)',\n","    'f_sol': lambda bbox_xyxy, pt: pt[0] >= bbox_xyxy[0] and pt[0] <= bbox_xyxy[2] and pt[1] >= bbox_xyxy[1] and pt[1] <= bbox_xyxy[3],\n","    'test_input_args': [(np.random.random(4) * [-1, -1, 1, 1], np.random.random(2) *2 - 1) for _ in range(5)],\n","    'test_equiv': np.allclose\n","  },\n","  {\n","    'f_name': 'interpolate_pts_np',\n","    'f_sig': 'pts = interpolate_pts_np(start, end, n)',\n","    'f_sol': lambda start, end, n: np.linspace(start, end, n),\n","    'test_input_args': [(np.random.random(2), np.random.random(2), 3) for _ in range(5)],\n","    'test_equiv': np.allclose\n","  },\n","  {\n","    'f_name': 'reverse_pts',\n","    'f_sig': 'pts = reverse_pts(pts_np)',\n","    'f_sol': lambda pts_np: pts_np[::-1],\n","    'test_input_args': [(np.random.random((10, 2)),) for _ in range(5)],\n","    'test_equiv': np.allclose\n","  },\n","  {\n","    'f_name': 'normalize_vector',\n","    'f_sig': 'normalized_vector = normalize_vector(vector)',\n","    'f_sol': lambda vector: vector / np.linalg.norm(vector),\n","    'test_input_args': [(np.random.random(np.random.randint(1, 10)), ) for _ in range(5)],\n","    'test_equiv': np.allclose\n","  },\n","  {\n","    'f_name': 'translate_pts_np',\n","    'f_sig': 'new_pts_np = translate_pts_np(pts_np, delta_np)',\n","    'f_sol': lambda pts_np, delta_np: pts_np + delta_np,\n","    'test_input_args': [(np.random.random((10, 2)), np.random.random(2)) for _ in range(5)],\n","    'test_equiv': np.allclose\n","  },\n","  {\n","    'f_name': 'rotate_pts_around_pts_center_np',\n","    'f_sig': 'new_pts_np = rotate_pts_around_pts_center_np(pts_np, angle_deg)',\n","    'f_sol': rotate_pts_around_pts_center_np,\n","    'test_input_args': [(np.random.random((10, 2)), np.random.random()) for _ in range(5)],\n","    'test_equiv': np.allclose\n","  },\n","  {\n","    'f_name': 'scale_pts_around_centroid_np',\n","    'f_sig': 'new_pts_np = scale_pts_around_centroid_np(pts_np, scale_x=1.5, scale_y=1.5)',\n","    'f_sol': scale_pts_around_centroid_np,\n","    'test_input_args': [(np.random.random((10, 2)), np.random.random(), np.random.random()) for _ in range(5)],\n","    'test_equiv': np.allclose\n","  },\n","  {\n","    'f_name': 'fit_2d_np_polys',\n","    'f_sig': '(poly_x_coeffs, poly_y_coeffs) = fit_2d_np_polys(ts, pts_2d_np, deg)',\n","    'f_sol': lambda ts, pts_2d_np, deg: (np.polyfit(ts, pts_2d_np[:, 0], deg), np.polyfit(ts, pts_2d_np[:, 1], deg)),\n","    'test_input_args': [(np.linspace(0, 10, 10), np.random.random((10, 2)), np.random.randint(3, 6)) for _ in range(5)],\n","    'test_equiv': np.allclose\n","  },\n","  {\n","    'f_name': 'evaluate_pts_2d_from_poly_coeffs',\n","    'f_sig': 'pts_2d_np = evaluate_pts_2d_from_poly_coeffs(poly_x_coeffs, poly_y_coeffs, ts)',\n","    'f_sol': lambda poly_x_coeffs, poly_y_coeffs, ts: np.stack([np.polyval(poly_x_coeffs, ts), np.polyval(poly_y_coeffs, ts)], axis=1),\n","    'test_input_args': [(np.random.random(5), np.random.random(5), np.linspace(0, 10, 10)) for _ in range(5)],\n","    'test_equiv': np.allclose\n","  }\n","]\n","\n","problems_ctrl = [\n","  {\n","    'f_name': 'pd_control',\n","    'f_sig': 'u = pd_control(x_curr, x_goal, x_dot, Kp, Kv)',\n","    'f_sol': lambda x_curr, x_goal, x_dot, Kp, Kv: Kp * (x_goal - x_curr) - Kv * x_dot,\n","    'test_input_args': [(\n","      np.random.random(2), np.random.random(2), np.random.random(2), np.random.random(), np.random.random()\n","      ) for _ in range(5)],\n","    'test_equiv': np.allclose\n","  },\n","  {\n","    'f_name': 'end_effector_impedance_control',\n","    'f_sig': 'tau = end_effector_impedance_control(x_curr, x_goal, x_dot, K_x_mat, D_x_mat, J)',\n","    'f_sol': lambda x_curr, x_goal, x_dot, K_x_mat, D_x_mat, J: J.T @ (K_x_mat @ (x_goal - x_curr) - D_x_mat @ x_dot),\n","    'test_input_args': [(\n","      np.random.random(3), np.random.random(3), np.random.random(3), \n","      np.diag(np.random.random(3)), np.diag(np.random.random(3)), \n","      np.random.random((3, 6))\n","      ) for _ in range(5)],\n","    'test_equiv': np.allclose\n","  },\n","  {\n","    'f_name': 'is_discrete_system_stable',\n","    'f_sig': 'is_stable = is_discrete_system_stable(A_mat)',\n","    'f_sol': lambda A_mat: np.all(np.abs(np.linalg.eigvals(A_mat)) < 1),\n","    'test_input_args': [(np.random.random((5, 5)),) for _ in range(5)],\n","    'test_equiv': np.allclose\n","  },\n","  {\n","    'f_name': 'is_closed_loop_discrete_system_stable',\n","    'f_sig': 'is_stable = is_closed_loop_discrete_system_stable(A_mat, B_mat, K_mat)',\n","    'f_sol': lambda A_mat, B_mat, K_mat: np.all(np.abs(np.linalg.eigvals(A_mat - B_mat @ K_mat)) < 1),\n","    'test_input_args': [(np.random.random((5, 5)), np.random.random((5, 3)), np.random.random((3, 5))) for _ in range(5)],\n","    'test_equiv': np.allclose\n","  },\n","]\n","\n","def get_direction_orthogonal_to_line_to_point(line, point):\n","  # get the line's direction.\n","  direction = np.array(line.coords[1]) - np.array(line.coords[0])\n","  direction = direction / np.linalg.norm(direction)\n","  # get the orthogonal direction.\n","  orthogonal_direction = np.array([-direction[1], direction[0]])\n","  # get the point's direction.\n","  point_direction = np.array(point) - np.array(line.coords[0])\n","  # get the sign of the point's direction.\n","  sign = np.sign(np.dot(point_direction, orthogonal_direction))\n","  # get the orthogonal direction from the line to the point.\n","  orthogonal_direction_from_line_to_point = sign * orthogonal_direction\n","  return orthogonal_direction_from_line_to_point\n","\n","def get_direction_orthogonal_to_line(line):\n","  direction = np.array(line.coords[1]) - np.array(line.coords[0])\n","  direction = direction / np.linalg.norm(direction)\n","  direction = np.array([direction[1], -direction[0]])\n","  return direction\n","\n","shape_eq = lambda f_sol_out, f_gen_out: np.allclose(f_sol_out.union(f_gen_out).area, f_sol_out.area, f_gen_out.area)\n","\n","make_rectangle = lambda width, height, center: box(center[0] - width / 2, center[1] - height / 2, center[0] + width / 2, center[1] + height / 2)\n","\n","problems_shapely = [\n","  {\n","    'f_name': 'get_closest_point_on_line_to_point',\n","    'f_sig': 'point_np = get_closest_point_on_line_to_point(line, pt_np)',\n","    'f_sol': lambda line, pt_np: np.array(line.interpolate(line.project(Point(pt_np))).coords[0]),\n","    'test_input_args': [(LineString(np.random.random((2, 2))), np.random.random(2)) for _ in range(5)],\n","    'test_equiv': np.allclose\n","  },\n","  {\n","    'f_name': 'get_direction_orthogonal_to_line',\n","    'f_sig': 'direction = get_direction_orthogonal_to_line(line)',\n","    'f_sol': get_direction_orthogonal_to_line,\n","    'test_input_args': [(LineString(np.random.random((2, 2))),) for _ in range(5)],\n","    'test_equiv': np.allclose\n","  },\n","  {\n","    'f_name': 'get_direction_orthogonal_to_line_to_point',\n","    'f_sig': 'direction = get_direction_orthogonal_to_line_to_point(line, pt_np)',\n","    'f_sol': get_direction_orthogonal_to_line_to_point,\n","    'test_input_args': [(LineString(np.random.random((2, 2))), np.random.random(2)) for _ in range(5)],\n","    'test_equiv': np.allclose\n","  },\n","  {\n","    'f_name': 'get_points_from_polygon',\n","    'f_sig': 'points_np = get_points_from_polygon(polygon)',\n","    'f_sol': lambda polygon: np.array(polygon.exterior.coords),\n","    'test_input_args': [(Polygon(np.random.random((6, 2))),) for _ in range(5)],\n","    'test_equiv': np.allclose\n","  },\n","  {\n","    'f_name': 'interpolate_pts_along_exterior',\n","    'f_sig': 'pts_coords = interpolate_pts_along_exterior(exterior=shape.exterior, n=5)',\n","    'f_sol': lambda exterior, n: [exterior.interpolate(i / (n - 1), normalized=True).coords[0] for i in range(n)],\n","    'test_input_args': [(Polygon(np.random.random((6, 2))).exterior, np.random.randint(1, 100)) for _ in range(5)],\n","    'test_equiv': np.allclose\n","  },\n","  {\n","    'f_name': 'interpolate_pts_on_line',\n","    'f_sig': 'pts_coords = interpolate_pts_on_line(line, n)',\n","    'f_sol': lambda exterior, n: [exterior.interpolate(i / (n - 1), normalized=True).coords[0] for i in range(n)],\n","    'test_input_args': [(LineString(np.random.random((2, 2))), np.random.randint(2, 100)) for _ in range(5)],\n","    'test_equiv': np.allclose\n","  },\n","  {\n","    'f_name': 'make_line',\n","    'f_sig': 'line = make_line(start_pt_np, end_pt_np)',\n","    'f_sol': lambda start_pt_np, end_pt_np: LineString([start_pt_np, end_pt_np]),\n","    'test_input_args': [(np.random.random(2), np.random.random(2)) for _ in range(5)],\n","    'test_equiv': eq\n","  },\n","  {\n","    'f_name': 'make_circle',\n","    'f_sig': 'circle = make_circle(radius, center)',\n","    'f_sol': lambda radius, center: Point(center).buffer(radius),\n","    'test_input_args': [(np.random.random(), np.random.random(2)) for _ in range(5)],\n","    'test_equiv': shape_eq\n","  },\n","  {\n","    'f_name': 'make_rectangle',\n","    'f_sig': 'rectangle = make_rectangle(width, height, center)',\n","    'f_sol': make_rectangle,\n","    'test_input_args': [(np.random.random(), np.random.random(), np.random.random(2)) for _ in range(5)],\n","    'test_equiv': shape_eq\n","  },\n","  {\n","    'f_name': 'make_ellipse',\n","    'f_sig': 'ellipse = make_ellipse(center, major_axis, minor_axis)',\n","    'f_sol': lambda center, major_axis, minor_axis: scale(Point(center).buffer(1.0), xfact=major_axis, yfact=minor_axis),\n","    'test_input_args': [(np.random.random(2), np.random.random(), np.random.random()) for _ in range(5)],\n","    'test_equiv': shape_eq\n","  },\n","]\n","\n","obj_names = ['block0', 'block1', 'block2', 'block3', 'block4', 'block5']\n","obj_positions = np.array([\n","    [0, 0],\n","    [0.1, 0],\n","    [0.5, 0.5],\n","    [0, 0],\n","    [0.6, 0.6],\n","    [0, 0.9],\n","    [0.4, 0.4]\n","])\n","sizes = [0.15, 0.15, 0.1, 0.2, 0.1, 0.05, 0.1]\n","obj_boxes = [make_rectangle(size, size, pos) for pos, size in zip(obj_positions, sizes)]\n","obj_outer_pts_np_map = {\n","    obj_name: np.array(obj_box.exterior.coords)\n","    for obj_name, obj_box in zip(obj_names, obj_boxes)\n","}\n","get_obj_outer_pts_np = lambda obj_name: obj_outer_pts_np_map[obj_name]\n","obj_names0 = obj_names[:3]\n","obj_names1 = obj_names[3:]\n","\n","def get_obj_shape(obj_name):\n","    pts = get_obj_outer_pts_np(obj_name)\n","    obj_shape = Polygon(pts)\n","    return obj_shape\n","\n","def obj_shape_does_not_contain_others(obj_name, other_obj_names):\n","    obj_shape = get_obj_shape(obj_name)\n","    for other_obj_name in other_obj_names:\n","        other_obj_shape = get_obj_shape(other_obj_name)\n","        if obj_shape.contains(other_obj_shape):\n","            return False\n","    return True\n","\n","def is_obj0_bigger_than_obj1(obj0_name, obj1_name):\n","    obj0_pts = get_obj_outer_pts_np(obj0_name)\n","    obj1_pts = get_obj_outer_pts_np(obj1_name)\n","    obj0_area = get_area(obj0_pts)\n","    obj1_area = get_area(obj1_pts)\n","    return obj0_area > obj1_area\n","\n","def get_area(pts):\n","    polygon = Polygon(pts)\n","    return polygon.area\n","\n","def get_one_bbox_xyxy_of_all_objs(all_obj_names):\n","    all_pts_np = []\n","    for obj_name in all_obj_names:\n","        pts_np = get_obj_outer_pts_np(obj_name)\n","        all_pts_np.append(pts_np)\n","    all_pts_np = np.concatenate(all_pts_np, axis=0)\n","    bbox_xyxy = get_bbox_xyxy_of_pts_np(all_pts_np)\n","    return bbox_xyxy\n","\n","def get_bbox_xyxy_of_pts_np(all_pts_np):\n","    x_min = np.min(all_pts_np[:, 0])\n","    x_max = np.max(all_pts_np[:, 0])\n","    y_min = np.min(all_pts_np[:, 1])\n","    y_max = np.max(all_pts_np[:, 1])\n","    bbox_xyxy = np.array([x_min, y_min, x_max, y_max])\n","    return bbox_xyxy\n","\n","def are_obj_centers_close(obj_names, threshold):\n","    centers = [get_obj_center(obj_name) for obj_name in obj_names]\n","    distances = [get_distance(centers[0], center) for center in centers[1:]]\n","    return all([distance < threshold for distance in distances])\n","\n","def get_distance(pt0, pt1):\n","    return np.linalg.norm(pt0 - pt1)\n","\n","def get_obj_center(obj_name):\n","    pts_np = get_obj_outer_pts_np(obj_name)\n","    center = np.mean(pts_np, axis=0)\n","    return center\n","\n","def get_name_of_biggest_obj(obj_names):\n","    biggest_obj_name = None\n","    biggest_obj_area = 0\n","    for obj_name in obj_names:\n","        obj_area = get_obj_area(obj_name)\n","        if obj_area > biggest_obj_area:\n","            biggest_obj_area = obj_area\n","            biggest_obj_name = obj_name\n","    return biggest_obj_name\n","\n","def get_obj_area(obj_name):\n","    pts_np = get_obj_outer_pts_np(obj_name)\n","    polygon = Polygon(pts_np)\n","    return polygon.area\n","\n","def do_any_object_shapes_intersect_with_each_other(obj_names):\n","    for i in range(len(obj_names)):\n","        for j in range(i+1, len(obj_names)):\n","            obj_name_i = obj_names[i]\n","            obj_name_j = obj_names[j]\n","            obj_shape_i = get_obj_shape(obj_name_i)\n","            obj_shape_j = get_obj_shape(obj_name_j)\n","            if obj_shape_i.intersects(obj_shape_j):\n","                return True\n","    return False\n","\n","def get_name_of_obj_with_min_dist_to_pt(pt_np, obj_names):\n","    min_dist = np.inf\n","    min_dist_obj_name = None\n","    for obj_name in obj_names:\n","        obj_pts_np = get_obj_outer_pts_np(obj_name)\n","        dist = get_min_dist_between_pts_np_and_pts_np(pts_np=obj_pts_np, pt_np=pt_np)\n","        if dist < min_dist:\n","            min_dist = dist\n","            min_dist_obj_name = obj_name\n","    return min_dist_obj_name\n","\n","def get_min_dist_between_pts_np_and_pts_np(pts_np, pt_np):\n","    dists = np.linalg.norm(pts_np - pt_np, axis=1)\n","    return np.min(dists)\n","\n","problems_api = [\n","  {\n","    'f_name': 'obj_shape_does_not_contain_others',\n","    'f_sig': 'ret_val = obj_shape_does_not_contain_others(obj_name, other_obj_names)',\n","    'f_sol': obj_shape_does_not_contain_others,\n","    'test_input_args': [(obj_name0, obj_names1) for obj_name0 in obj_names0],\n","    'test_equiv': eq\n","  },\n","  {\n","    'f_name': 'is_obj0_bigger_than_obj1',\n","    'f_sig': 'ret_val = is_obj0_bigger_than_obj1(obj0_name, obj1_name)',\n","    'f_sol': is_obj0_bigger_than_obj1,\n","    'test_input_args': [(np.random.choice(obj_names0), np.random.choice(obj_names1)) for _ in range(5)],\n","    'test_equiv': eq\n","  },\n","  {\n","    'f_name': 'get_one_bbox_xyxy_of_all_objs',\n","    'f_sig': 'bbox_xyxy = get_one_bbox_xyxy_of_all_objs(all_obj_names)',\n","    'f_sol': get_one_bbox_xyxy_of_all_objs,\n","    'test_input_args': [(obj_names0,), (obj_names1,)],\n","    'test_equiv': np.allclose\n","  },\n","  {\n","    'f_name': 'are_obj_centers_close',\n","    'f_sig': 'ret_val = are_obj_centers_close(obj_names, threshold)',\n","    'f_sol': are_obj_centers_close,\n","    'test_input_args': [(obj_names0, np.random.random()), (obj_names1, np.random.random())],\n","    'test_equiv': eq\n","  },\n","  {\n","    'f_name': 'get_name_of_biggest_obj',\n","    'f_sig': 'obj_name = get_name_of_biggest_obj(obj_names)',\n","    'f_sol': get_name_of_biggest_obj,\n","    'test_input_args': [(obj_names0,), (obj_names1,)],\n","    'test_equiv': eq\n","  },\n","  {\n","    'f_name': 'do_any_object_shapes_intersect_with_each_other',\n","    'f_sig': 'ret_val = do_any_object_shapes_intersect_with_each_other(obj_names)',\n","    'f_sol': do_any_object_shapes_intersect_with_each_other,\n","    'test_input_args': [(obj_names0,), (obj_names1,)],\n","    'test_equiv': eq\n","  },\n","  {\n","    'f_name': 'get_name_of_obj_with_min_dist_to_pt',\n","    'f_sig': 'obj_name = get_name_of_obj_with_min_dist_to_pt(pt_np, obj_names)',\n","    'f_sol': get_name_of_obj_with_min_dist_to_pt,\n","    'test_input_args': [(np.random.random(2), obj_names0), (np.random.random(2), obj_names1)],\n","    'test_equiv': eq\n","  },\n","]\n","\n","all_problems = problems_np + problems_ctrl + problems_shapely + problems_api\n","print('n problems:', len(all_problems))\n","\n","context_vars['get_obj_outer_pts_np'] = get_obj_outer_pts_np"]},{"cell_type":"code","source":["for p in all_problems:\n","  print(p['f_sig'])"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"yDFXhfwKJwsp","executionInfo":{"status":"ok","timestamp":1661198673971,"user_tz":240,"elapsed":133,"user":{"displayName":"Jacky Liang","userId":"05524594537381871813"}},"outputId":"36f291d4-e32a-4752-cee6-98497253c4f9"},"execution_count":null,"outputs":[{"output_type":"stream","name":"stdout","text":["idx = get_top_most_idx(points_np)\n","idx = get_bottom_most_idx(points_np)\n","idx = get_left_most_idx(points_np)\n","idx = get_right_most_idx(points_np)\n","idx = get_farthest_idx(points_np, point_np)\n","idx = get_closest_idx(points_np, point_np)\n","area = get_bbox_xyxy_area(bbox_xyxy)\n","contains = bbox_xyxy_contains_pt(bbox_xyxy)\n","pts = interpolate_pts_np(start, end, n)\n","pts = reverse_pts(pts_np)\n","normalized_vector = normalize_vector(vector)\n","new_pts_np = translate_pts_np(pts_np, delta_np)\n","new_pts_np = rotate_pts_around_pts_center_np(pts_np, angle_deg)\n","new_pts_np = scale_pts_around_centroid_np(pts_np, scale_x=1.5, scale_y=1.5)\n","(poly_x_coeffs, poly_y_coeffs) = fit_2d_np_polys(ts, pts_2d_np, deg)\n","pts_2d_np = evaluate_pts_2d_from_poly_coeffs(poly_x_coeffs, poly_y_coeffs, ts)\n","u = pd_control(x_curr, x_goal, x_dot, Kp, Kv)\n","tau = end_effector_impedance_control(x_curr, x_goal, x_dot, K_x_mat, D_x_mat, J)\n","is_stable = is_discrete_system_stable(A_mat)\n","is_stable = is_closed_loop_discrete_system_stable(A_mat, B_mat, K_mat)\n","point_np = get_closest_point_on_line_to_point(line, pt_np)\n","direction = get_direction_orthogonal_to_line(line)\n","direction = get_direction_orthogonal_to_line_to_point(line, pt_np)\n","points_np = get_points_from_polygon(polygon)\n","pts_coords = interpolate_pts_along_exterior(exterior=shape.exterior, n=5)\n","pts_coords = interpolate_pts_on_line(line, n)\n","line = make_line(start_pt_np, end_pt_np)\n","circle = make_circle(radius, center)\n","rectangle = make_rectangle(width, height, center)\n","ellipse = make_ellipse(center, major_axis, minor_axis)\n","ret_val = obj_shape_does_not_contain_others(obj_name, other_obj_names)\n","ret_val = is_obj0_bigger_than_obj1(obj0_name, obj1_name)\n","bbox_xyxy = get_one_bbox_xyxy_of_all_objs(all_obj_names)\n","ret_val = are_obj_centers_close(obj_names, threshold)\n","obj_name = get_name_of_biggest_obj(obj_names)\n","ret_val = do_any_object_shapes_intersect_with_each_other(obj_names)\n","obj_name = get_name_of_obj_with_min_dist_to_pt(pt_np, obj_names)\n"]}]},{"cell_type":"markdown","metadata":{"id":"LixfjjwGdPZg"},"source":["## Evals"]},{"cell_type":"markdown","source":["### code-davinci-002"],"metadata":{"id":"IKnT3jEtD1HB"}},{"cell_type":"code","source":["print('Codex | Hierarchical Code-Gen | Hierarchical Prompt')\n","\n","f_gens_codex_hc_hp = solve_problems(all_problems, prompt_f_gen, context_vars, recurse=True, query_kwargs={'engine': 'code-davinci-002'})\n","\n","results_codex_hc_hp = eval_problems(all_problems, f_gens_codex_hc_hp)\n","for r in results_codex_hc_hp:\n","  print(int(r['success']))\n","\n","# failures_codex_hc_hp = [r for r in results_codex_hc_hp if not r['success']]\n","# for failure in failures_codex_hc_hp:\n","#   print(failure['f_name'], failure['info'], failure['f_gen']['f_src'])"],"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":327,"referenced_widgets":["f1027055235f4858972ca2dda4a58be4","6491917afb444fb292103895d800664f","d5f7e6281e1d4caa82bb6255a0af75e2","bfd9a45ea8394ea8bd61207a24af9951","81d45125b79f47a8980c5cb4078a7b20","2f9c853f27e443ab82a71280a3c161ed","7a316728f2c940ed99b367d1df969dab","75695341b2084b0d8da307105a5babdd","5d7dafb230a944199f3b1e5b4a666b5b","a3e7b3963ab54be8bb630a8705299049","1992d7d5eb354733a52d17344ed60817"]},"id":"LVuQI1HF_kQA","executionInfo":{"status":"ok","timestamp":1660337355179,"user_tz":240,"elapsed":117113,"user":{"displayName":"Jacky Liang","userId":"05524594537381871813"}},"outputId":"6afc3667-4110-4bc8-f264-c97408670e41"},"execution_count":null,"outputs":[{"output_type":"stream","name":"stdout","text":["Codex | Hierarchical Code-Gen | Hierarchical Prompt\n"]},{"output_type":"display_data","data":{"text/plain":["  0%|          | 0/2 [00:00<?, ?it/s]"],"application/vnd.jupyter.widget-view+json":{"version_major":2,"version_minor":0,"model_id":"f1027055235f4858972ca2dda4a58be4"}},"metadata":{}},{"output_type":"stream","name":"stderr","text":["ERROR:shapely.geos:third argument of GEOSProject_r must be Point\n"]},{"output_type":"stream","name":"stdout","text":["Success rate: 36/37 = 0.97\n","get_direction_orthogonal_to_line_to_point  \n","def get_direction_orthogonal_to_line_to_point(line, pt_np):\n","  # get the line from the origin to the point.\n","  line_to_pt = make_line(start=np.array([0, 0]), end=pt_np)\n","  # get the angle between the two lines.\n","  angle = get_angle_between_lines(line, line_to_pt)\n","  # get the direction orthogonal to the line.\n","  direction = get_direction_orthogonal_to_line(line)\n","  # rotate the direction by the angle.\n","  direction = rotate_direction(direction, angle)\n","  return direction\n","\n","\n"]}]},{"cell_type":"code","source":["print('Codex | Hierarchical Code-Gen | Flat Prompt')\n","\n","f_gens_codex_hc_fp = solve_problems(all_problems, prompt_f_gen_flat, context_vars, recurse=True, query_kwargs={'engine': 'code-davinci-002'})\n","\n","results_codex_hc_fp = eval_problems(all_problems, f_gens_codex_hc_fp)\n","failures_codex_hc_fp = [r for r in results_codex_hc_fp if not r['success']]\n","for failure in failures_codex_hc_fp:\n","  print(failure['f_name'], failure['info'], failure['f_gen']['f_src'])"],"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":1000,"referenced_widgets":["c35cf1e1c8314ecc86ae63b2dc48dbc4","b4d45a2faa2b4c4fb4789262fd5be8db","7c02ffd2aedc44ea9660651bb96a609a","c1ca1b987a7b47368b4e6877ce6bfecc","87dcd29033f742278254b4091d671f20","71b42a0bc2c740e7be1abb4722431131","78194213096f44cd9ff05699d5934fa6","33932410fdc54f1481abeb4fbc8e3333","bda9ccf8b75c49d58c9ad4762368bf7c","8217a0b6a2e641719cd5987ecd41da78","71d93541ba76435cb80714dab840b8e6"]},"id":"sgA1MPqQ7DxB","executionInfo":{"status":"ok","timestamp":1660243778845,"user_tz":240,"elapsed":49460,"user":{"displayName":"Jacky Liang","userId":"05524594537381871813"}},"outputId":"1095014d-74ff-4a70-a1e8-fd7d8c338e68"},"execution_count":null,"outputs":[{"output_type":"stream","name":"stdout","text":["Codex | Hierarchical Code-Gen | Flat Prompt\n"]},{"output_type":"display_data","data":{"text/plain":["  0%|          | 0/2 [00:00<?, ?it/s]"],"application/vnd.jupyter.widget-view+json":{"version_major":2,"version_minor":0,"model_id":"c35cf1e1c8314ecc86ae63b2dc48dbc4"}},"metadata":{}},{"output_type":"stream","name":"stdout","text":["Success rate: 32/37 = 0.86\n","is_closed_loop_discrete_system_stable operands could not be broadcast together with shapes (5,3) (3,5)  \n","def is_closed_loop_discrete_system_stable(A_mat, B_mat, K_mat):\n","    # check if the system is stable.\n","    eig_vals, eig_vecs = np.linalg.eig(A_mat - B_mat * K_mat)\n","    is_stable = np.all(np.abs(eig_vals) < 1)\n","    return is_stable\n","\n","\n","get_direction_orthogonal_to_line_to_point  \n","def get_direction_orthogonal_to_line_to_point(line, pt_np):\n","  pt_np = np.array(pt_np)\n","  line_np = np.array(line.coords)\n","  line_vec = line_np[1] - line_np[0]\n","  pt_vec = pt_np - line_np[0]\n","  direction = np.cross(line_vec, pt_vec)\n","  return direction\n","\n","\n","obj_shape_does_not_contain_others 'numpy.ndarray' object has no attribute 'contains' \n","def obj_shape_does_not_contain_others(obj_name, other_obj_names):\n","    obj_shape = get_obj_outer_pts_np(obj_name)\n","    for other_obj_name in other_obj_names:\n","        other_obj_shape = get_obj_outer_pts_np(other_obj_name)\n","        if obj_shape.contains(other_obj_shape):\n","            return False\n","    return True\n","\n","\n","are_obj_centers_close  \n","def are_obj_centers_close(obj_names, threshold):\n","    obj_centers = [get_obj_center(obj_name) for obj_name in obj_names]\n","    obj_centers_np = np.array(obj_centers)\n","    distances = np.linalg.norm(obj_centers_np[:, None] - obj_centers_np, axis=2)\n","    return np.any(distances < threshold)\n","\n","\n","do_any_object_shapes_intersect_with_each_other 'numpy.ndarray' object has no attribute 'intersects' \n","def do_any_object_shapes_intersect_with_each_other(obj_names):\n","    ret_val = False\n","    for i in range(len(obj_names)):\n","        for j in range(i+1, len(obj_names)):\n","            obj_name_i = obj_names[i]\n","            obj_name_j = obj_names[j]\n","            obj_shape_i = get_obj_outer_pts_np(obj_name_i)\n","            obj_shape_j = get_obj_outer_pts_np(obj_name_j)\n","            if obj_shape_i.intersects(obj_shape_j):\n","                ret_val = True\n","                break\n","    return ret_val\n","\n","\n"]},{"output_type":"stream","name":"stderr","text":["/usr/local/lib/python3.7/dist-packages/shapely/affinity.py:109: FutureWarning: elementwise comparison failed; returning scalar instead, but in the future will perform elementwise comparison\n","  if origin == 'center':\n","/usr/local/lib/python3.7/dist-packages/shapely/affinity.py:113: FutureWarning: elementwise comparison failed; returning scalar instead, but in the future will perform elementwise comparison\n","  elif origin == 'centroid':\n"]}]},{"cell_type":"code","source":["print('Codex | Flat Code-Gen | Hierarchical Prompt')\n","\n","f_gens_codex_fc_hp = solve_problems(all_problems, prompt_f_gen, context_vars, recurse=False, query_kwargs={'engine': 'code-davinci-002'})\n","\n","results_codex_fc_hp = eval_problems(all_problems, f_gens_codex_fc_hp)\n","\n","for r in results_codex_fc_hp:\n","  print(int(r['success']))\n","\n","# failures_codex_fc_hp = [r for r in results_codex_fc_hp if not r['success']]\n","# for failure in failures_codex_fc_hp:\n","#   print(failure['f_name'], failure['info'], failure['f_gen']['f_src'])"],"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":1000,"referenced_widgets":["47a17d004add454caa96f46da4e856d1","eb3cee9264104af9adacdfc2704cef2e","b38393b61363474180a18c3e6f8d820e","3b6de774fd90468eb8e7158dddc71098","55ec19e6ca494957b89b1bb96a4c81db","475f1f93f8b04dffaefa9c2f20465510","ca8ed16e1e1a49d59da461541c1b6e0c","b6c83decdf1449099687241b80fa9374","d889e6ff03af4bd481f3e6395363c1ba","89acb4915a1244d583bb9932d196c640","8e8d5b4ac5cf4310b256bfdf01a95abd"]},"id":"S_b9Ud6M7F3I","executionInfo":{"status":"ok","timestamp":1661199170820,"user_tz":240,"elapsed":27030,"user":{"displayName":"Jacky Liang","userId":"05524594537381871813"}},"outputId":"7eea8f4c-91d8-4f36-b8d6-6cf3477aa165"},"execution_count":null,"outputs":[{"output_type":"stream","name":"stdout","text":["Codex | Flat Code-Gen | Hierarchical Prompt\n"]},{"output_type":"display_data","data":{"text/plain":["  0%|          | 0/2 [00:00<?, ?it/s]"],"application/vnd.jupyter.widget-view+json":{"version_major":2,"version_minor":0,"model_id":"47a17d004add454caa96f46da4e856d1"},"application/json":{"n":0,"total":2,"elapsed":0.0493471622467041,"ncols":null,"nrows":null,"prefix":"","ascii":false,"unit":"it","unit_scale":false,"rate":null,"bar_format":null,"postfix":null,"unit_divisor":1000,"initial":0,"colour":null}},"metadata":{"application/vnd.jupyter.widget-view+json":{"colab":{"custom_widget_manager":{"url":"https://ssl.gstatic.com/colaboratory-static/widgets/colab-cdn-widget-manager/d2e234f7cc04bf79/manager.min.js"}}}}},{"output_type":"stream","name":"stdout","text":["is_closed_loop_discrete_system_stable\n","\n","def is_closed_loop_discrete_system_stable(A_mat, B_mat, K_mat):\n","    # check if the system is stable.\n","    # A_mat: state matrix.\n","    # B_mat: input matrix.\n","    # K_mat: feedback gain matrix.\n","    # return: is_stable: boolean.\n","    # reference: https://www.youtube.com/watch?v=Q_QX_QZQZQk\n","    # reference: https://www.youtube.com/watch?v=Q_QX_QZQZQk\n","    # reference: https://www.youtube.com/watch?v=Q_QX_QZQZQk\n","    # reference: https://www.youtube.com/watch?v=Q_QX_QZQZQk\n","    # reference: https://www.youtube.com/watch?v=Q_QX_QZQZQk\n","    # reference: https://www.youtube.com/watch?v=Q_QX_QZQZQk\n","    # reference: https://www.youtube.com/watch?v=Q_QX_QZQZQk\n","    # reference: https://www.youtube.com/watch?v=Q_QX_QZQZQk\n","    # reference: https://www.youtube.com/watch?v=Q_QX_QZQZQk\n","    # reference: https://www.youtube.com/watch?v=Q_QX_QZQZQk\n","    # reference: https://www.youtube.com/watch?v=Q_QX_QZQZQk\n","    # reference: https://www.youtube.com/watch?v=Q_QX_QZQZQk\n","    # reference: https://www.youtube.com/watch?v=Q_QX_QZQZQk\n","    # reference: https://www.youtube.com/watch?v=Q_QX_QZQZQk\n","    # reference: https://www.youtube.com/watch?v=Q_QX_QZQZQk\n","    # reference: https://www.youtube.com\n","unexpected EOF while parsing (<string>, line 23)\n","Success rate: 26/37 = 0.70\n","1\n","1\n","1\n","1\n","1\n","1\n","1\n","1\n","0\n","1\n","1\n","1\n","0\n","1\n","1\n","1\n","1\n","1\n","1\n","0\n","1\n","1\n","0\n","1\n","1\n","1\n","1\n","1\n","1\n","1\n","0\n","0\n","0\n","0\n","0\n","0\n","0\n"]}]},{"cell_type":"code","source":["print('Codex | Flat Code-Gen | Flat Prompt')\n","\n","f_gens_codex_fc_fp = solve_problems(all_problems, prompt_f_gen_flat, context_vars, recurse=False, query_kwargs={'engine': 'code-davinci-002'})\n","\n","results_codex_fc_fp = eval_problems(all_problems, f_gens_codex_fc_fp)\n","\n","for r in results_codex_fc_fp:\n","  print(int(r['success']))\n","\n","# failures_codex_fc_fp = [r for r in results_codex_fc_fp if not r['success']]\n","# for failure in failures_codex_fc_fp:\n","#   print(failure['f_name'], failure['info'], failure['f_gen']['f_src'])"],"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":749,"referenced_widgets":["659f787564654704aa4f59fb01649d35","301a7072cf7d42c6acdf6775f25601f9","87caab83072c48debd247bc53959f48f","de27b8f62a48498dbcf3d6bfc28a287a","04d142e21e44467cb023a0a35a267799","adffc42a8adb4fa3b92a387a443183d7","2d0c3febe6384d6c8a74776da42d069a","3a08f7d15e31468a99f6fab2360ad2ab","43c9226d5c1b46418d8d2c571583236a","357fc2d3c9ae48e3a3ce9f668182aaaf","0c0498809f5b40e1a1fd89406acb370b"]},"id":"72faqO257Lne","executionInfo":{"status":"ok","timestamp":1661198967221,"user_tz":240,"elapsed":21723,"user":{"displayName":"Jacky Liang","userId":"05524594537381871813"}},"outputId":"c42996be-1da6-4ce9-8deb-e99bb71b2edd"},"execution_count":null,"outputs":[{"output_type":"stream","name":"stdout","text":["Codex | Flat Code-Gen | Flat Prompt\n"]},{"output_type":"display_data","data":{"text/plain":["  0%|          | 0/2 [00:00<?, ?it/s]"],"application/vnd.jupyter.widget-view+json":{"version_major":2,"version_minor":0,"model_id":"659f787564654704aa4f59fb01649d35"},"application/json":{"n":0,"total":2,"elapsed":0.021311044692993164,"ncols":null,"nrows":null,"prefix":"","ascii":false,"unit":"it","unit_scale":false,"rate":null,"bar_format":null,"postfix":null,"unit_divisor":1000,"initial":0,"colour":null}},"metadata":{}},{"output_type":"stream","name":"stderr","text":["ERROR:shapely.geos:third argument of GEOSProject_r must be Point\n"]},{"output_type":"stream","name":"stdout","text":["Success rate: 30/37 = 0.81\n","1\n","1\n","1\n","1\n","1\n","1\n","1\n","1\n","1\n","1\n","1\n","1\n","0\n","1\n","1\n","1\n","1\n","1\n","1\n","0\n","1\n","1\n","0\n","1\n","1\n","1\n","1\n","1\n","1\n","1\n","0\n","1\n","1\n","0\n","0\n","0\n","1\n"]},{"output_type":"stream","name":"stderr","text":["<string>:6: ShapelyDeprecationWarning: The array interface is deprecated and will no longer work in Shapely 2.0. Convert the '.coords' to a numpy array instead.\n"]}]},{"cell_type":"markdown","source":["### code-cushman-001"],"metadata":{"id":"iAl8KoEDRiSp"}},{"cell_type":"code","source":["print('cushman | Hierarchical Code-Gen | Hierarchical Prompt')\n","\n","f_gens_cushman_hc_hp = solve_problems(all_problems, prompt_f_gen, context_vars, recurse=True, query_kwargs={'engine': 'code-cushman-001'})\n","\n","results_cushman_hc_hp = eval_problems(all_problems, f_gens_cushman_hc_hp)\n","failures_cushman_hc_hp = [r for r in results_cushman_hc_hp if not r['success']]\n","for failure in failures_cushman_hc_hp:\n","  print(failure['f_name'], failure['info'], failure['f_gen']['f_src'])"],"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":1000,"referenced_widgets":["91d0afb1d1424699b93032fd063016e3","efa6a6beafcb43c7aac71fb3de7d0655","d0dad9ca732848ba9df40f3aeded082e","dbd420fc72f5426a92d182d260bea9c2","ee3ca52ef8e046e9a52e49601e897867","a13638f85aa74b698810ca69f58fbb79","ee2ed6255dfe474fb9c1e22797e2791c","341a5a68fb8e43e48b97ca8a67baae57","a92cb43a2b1248c2b15b5ab11fdb4d1e","c5cd7e256ebf4695a3e2e09375b7b412","9739c77d3e2b4241bd1003c765e2b3be"]},"id":"WYwEpNx1RkD7","executionInfo":{"status":"ok","timestamp":1660244453238,"user_tz":240,"elapsed":54527,"user":{"displayName":"Jacky Liang","userId":"05524594537381871813"}},"outputId":"8865d8cd-49dc-459a-fd09-20600d14736c"},"execution_count":null,"outputs":[{"output_type":"stream","name":"stdout","text":["cushman | Hierarchical Code-Gen | Hierarchical Prompt\n"]},{"output_type":"display_data","data":{"text/plain":["  0%|          | 0/2 [00:00<?, ?it/s]"],"application/vnd.jupyter.widget-view+json":{"version_major":2,"version_minor":0,"model_id":"91d0afb1d1424699b93032fd063016e3"}},"metadata":{}},{"output_type":"stream","name":"stdout","text":["name 'Ellipse' is not defined\n","Success rate: 21/37 = 0.57\n","bbox_xyxy_contains_pt bbox_xyxy_contains_pt() takes 1 positional argument but 2 were given \n","def bbox_xyxy_contains_pt(bbox_xyxy):\n","    xmin, ymin, xmax, ymax = bbox_xyxy\n","    return lambda pt: xmin <= pt[0] <= xmax and ymin <= pt[1] <= ymax\n","\n","\n","interpolate_pts_np  \n","def interpolate_pts_np(start, end, n):\n","    pts = []\n","    for i in range(n):\n","        t = i / n\n","        pt = interpolate_line(LineString([start, end]), t)\n","        pts.append(pt)\n","    return np.array(pts)\n","\n","\n","rotate_pts_around_pts_center_np shapes (2,3) and (2,2) not aligned: 3 (dim 1) != 2 (dim 0) \n","def rotate_pts_around_pts_center_np(pts_np, angle_deg):\n","  center_np = np.mean(pts_np, axis=0)\n","  new_pts_np = rotate_pts_around_center_np(pts_np, angle_deg, center_np)\n","  return new_pts_np\n","\n","\n","scale_pts_around_centroid_np translate_pts_np() got an unexpected keyword argument 'delta' \n","def scale_pts_around_centroid_np(pts_np, scale_x, scale_y):\n","    centroid_np = np.mean(pts_np, axis=0)\n","    new_pts_np = translate_pts_np(pts_np, delta=-centroid_np)\n","    new_pts_np = scale_pts_np(new_pts_np, scale_x=scale_x, scale_y=scale_y)\n","    new_pts_np = translate_pts_np(new_pts_np, delta=centroid_np)\n","    return new_pts_np\n","\n","\n","eval_pts_2d_from_poly_coeffs eval_line() missing 1 required positional argument: 'y_intercept' \n","def eval_pts_2d_from_poly_coeffs(poly_x_coeffs, poly_y_coeffs, ts):\n","    pts_2d_np = np.zeros((len(ts), 2))\n","    for i in range(len(ts)):\n","        x = eval_line(ts[i], poly_x_coeffs)\n","        y = eval_line(ts[i], poly_y_coeffs)\n","        pts_2d_np[i, :] = [x, y]\n","    return pts_2d_np\n","\n","\n","pd_control  \n","def pd_control(x_curr, x_goal, x_dot, Kp, Kv):\n","    error = x_goal - x_curr\n","    error_dot = x_dot - x_goal\n","    u = Kp * error + Kv * error_dot\n","    return u\n","\n","\n","end_effector_impedance_control ufunc 'isfinite' not supported for the input types, and the inputs could not be safely coerced to any supported types according to the casting rule ''safe'' \n","def end_effector_impedance_control(x_curr, x_goal, x_dot, K_x_mat, D_x_mat, J):\n","    # get the current position of the end effector.\n","    x_curr_np = np.array(x_curr)\n","    # get the goal position of the end effector.\n","    x_goal_np = np.array(x_goal)\n","    # get the current velocity of the end effector.\n","    x_dot_np = np.array(x_dot)\n","    # get the Jacobian of the end effector.\n","    J_np = np.array(J)\n","    # get the current position of the end effector.\n","    x_curr_np = np.array(x_curr)\n","    # get the goal position of the end effector.\n","    x_goal_np = np.array(x_goal)\n","    # get the current velocity of the end effector.\n","    x_dot_np = np.array(x_dot)\n","    # get the Jacobian of the end effector.\n","    J_np = np.array(J)\n","    # get the current position of the end effector.\n","    x_curr_np = np.array(x_curr)\n","    # get the goal position of the end effector.\n","    x_goal_np = np.array(x_goal)\n","    # get the current velocity of the end effector.\n","    x_dot_np = np.array(x_dot)\n","    # get the Jacobian of the end effector.\n","    J_np = np.array(J)\n","    # get the current position of the end effector.\n","    x_curr_np = np.array(x_curr)\n","    # get the goal position of the end effector.\n","    x_goal_np = np.array(x_goal)\n","    # get the current velocity of the end effector.\n","    x_dot_np = np.array(x_dot)\n","    # get the Jacobian of the end effector.\n","    J_np = np.array(J)\n","    # get the current position of the end effector.\n","   \n","is_closed_loop_discrete_system_stable  \n","def is_closed_loop_discrete_system_stable(A_mat, B_mat, K_mat):\n","    # get eigenvalues of A_mat.\n","    eigenvalues = np.linalg.eigvals(A_mat)\n","    # get the smallest eigenvalue.\n","    smallest_eigenvalue = np.min(eigenvalues)\n","    # get the largest eigenvalue.\n","    largest_eigenvalue = np.max(eigenvalues)\n","    # get the condition number.\n","    condition_number = largest_eigenvalue / smallest_eigenvalue\n","    # get the stability.\n","    is_stable = condition_number < 1\n","    return is_stable\n","\n","\n","get_closest_point_on_line_to_point 'numpy.ndarray' object has no attribute '_geom' \n","def get_closest_point_on_line_to_point(line, pt_np):\n","    # get the closest point on the line to the point.\n","    closest_point = line.interpolate(line.project(pt_np))\n","    return np.array(closest_point.coords[0])\n","\n","\n","get_direction_orthogonal_to_line 'LineString' object has no attribute 'coefficients' \n","def get_direction_orthogonal_to_line(line):\n","    # get the slope of the line.\n","    slope = line.coefficients[1]\n","    # get the orthogonal slope.\n","    orthogonal_slope = -1 / slope\n","    # get the orthogonal line.\n","    orthogonal_line = make_line_by_length(1)\n","    orthogonal_line = rotate(orthogonal_line, 90)\n","    orthogonal_line = rotate(orthogonal_line, 90)\n","    orthogonal_line = rotate(orthogonal_line, 90)\n","    orthogonal_line = rotate(orthogonal_line, 90)\n","    orthogonal_line = rotate(orthogonal_line, 90)\n","    orthogonal_line = rotate(orthogonal_line, 90)\n","    orthogonal_line = rotate(orthogonal_line, 90)\n","    orthogonal_line = rotate(orthogonal_line, 90)\n","    orthogonal_line = rotate(orthogonal_line, 90)\n","    orthogonal_line = rotate(orthogonal_line, 90)\n","    orthogonal_line = rotate(orthogonal_line, 90)\n","    orthogonal_line = rotate(orthogonal_line, 90)\n","    orthogonal_line = rotate(orthogonal_line, 90)\n","    orthogonal_line = rotate(orthogonal_line, 90)\n","    orthogonal_line = rotate(orthogonal_line, 90)\n","    orthogonal_line = rotate(orthogonal_line, 90)\n","    orthogonal_line = rotate(orthogonal_line, 90)\n","    orthogonal_line = rotate(orthogonal_line, 90)\n","    orthogonal_line = rotate(orthogonal_line, 90)\n","    orthogonal_line = rotate(orthogonal_line, 90)\n","    orthogonal_line = rotate(orthogonal_line, 90)\n","    orthogonal_line = rotate(orthogonal_line, 90)\n","    orthogonal_line = rotate(orthogonal_line, 90)\n","    orthogonal_line = rotate\n","get_direction_orthogonal_to_line_to_point unsupported operand type(s) for -: 'tuple' and 'tuple' \n","def get_direction_orthogonal_to_line_to_point(line, pt_np):\n","    # get the line to the point.\n","    line_to_pt = LineString([line.coords[0], pt_np])\n","    # get the orthogonal line to the line to the point.\n","    orthogonal_line = line_to_pt.parallel_offset(0.01, side='right')\n","    # get the direction of the orthogonal line.\n","    direction = orthogonal_line.coords[1] - orthogonal_line.coords[0]\n","    return direction\n","\n","\n","make_circle name 'make_circle_polygon' is not defined \n","def make_circle(radius, center):\n","  circle = make_circle_polygon(radius=radius, center=center)\n","  return circle\n","\n","\n","make_ellipse Null geometry supports no operations \n","def make_ellipse(center, major_axis, minor_axis):\n","  ellipse = Ellipse(center=center,\n","                    width=major_axis,\n","                    height=minor_axis,\n","                    angle=0)\n","  return ellipse\n","\n","\n","is_obj0_bigger_than_obj1  \n","def is_obj0_bigger_than_obj1(obj0_name, obj1_name):\n","    obj0_pts_np = get_obj_outer_pts_np(obj0_name)\n","    obj1_pts_np = get_obj_outer_pts_np(obj1_name)\n","    return get_total(obj0_pts_np.shape[0] - obj1_pts_np.shape[0]) > 0\n","\n","\n","get_one_bbox_xyxy_of_all_objs  \n","def get_one_bbox_xyxy_of_all_objs(all_obj_names):\n","    bbox_xyxy = []\n","    for obj_name in all_obj_names:\n","        bbox_xyxy.append(get_one_bbox_xyxy_of_one_obj(obj_name))\n","    return bbox_xyxy\n","\n","\n","do_any_object_shapes_intersect_with_each_other name 'scene' is not defined \n","def do_any_object_shapes_intersect_with_each_other(obj_names):\n","    for i in range(len(obj_names)):\n","        for j in range(i+1, len(obj_names)):\n","            obj_name_i = obj_names[i]\n","            obj_name_j = obj_names[j]\n","            obj_i = get_obj_by_name(obj_name_i)\n","            obj_j = get_obj_by_name(obj_name_j)\n","            if obj_i.intersects(obj_j):\n","                return True\n","    return False\n","\n","\n"]},{"output_type":"stream","name":"stderr","text":["/usr/local/lib/python3.7/dist-packages/shapely/topology.py:19: ShapelyDeprecationWarning: InvalidGeometryError will derive from ShapelyError and not TypeError or ValueError in Shapely 2.0.\n","  raise InvalidGeometryError(\"Null geometry supports no operations\")\n"]}]},{"cell_type":"code","source":["print('cushman | Hierarchical Code-Gen | Flat Prompt')\n","\n","f_gens_cushman_hc_fp = solve_problems(all_problems, prompt_f_gen_flat, context_vars, recurse=True, query_kwargs={'engine': 'code-cushman-001'})\n","\n","results_cushman_hc_fp = eval_problems(all_problems, f_gens_cushman_hc_fp)\n","failures_cushman_hc_fp = [r for r in results_cushman_hc_fp if not r['success']]\n","for failure in failures_cushman_hc_fp:\n","  print(failure['f_name'], failure['info'], failure['f_gen']['f_src'])"],"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":1000,"referenced_widgets":["ff36260e224b4270ae1b7621bc1fc5f8","d8c4f96e54d6466b98cac72cc00248a6","8601617e3a344fb78dd70f753ad7e7d8","c579edec585444c5b1f7415a68092b2f","f115cf28775747f2ad7db5be27c574de","7efd661c30ec41ecbbe3012a4d4f60f0","087fac5817e8460e855a08c2d63a7c91","966ea387fa1649509355bf56357ea939","a8e478f870fa41318553b6f231ed5e7d","12812101e43a4d8fbb1b4d2a3cf8095a","213e6b93f00843559f93e69b7fd5492a"]},"id":"9MhsBKCNRkGI","executionInfo":{"status":"ok","timestamp":1660244672371,"user_tz":240,"elapsed":24422,"user":{"displayName":"Jacky Liang","userId":"05524594537381871813"}},"outputId":"82f95aef-c387-485f-b34c-ac3aa87fae0a"},"execution_count":null,"outputs":[{"output_type":"stream","name":"stdout","text":["cushman | Hierarchical Code-Gen | Flat Prompt\n"]},{"output_type":"display_data","data":{"text/plain":["  0%|          | 0/2 [00:00<?, ?it/s]"],"application/vnd.jupyter.widget-view+json":{"version_major":2,"version_minor":0,"model_id":"ff36260e224b4270ae1b7621bc1fc5f8"}},"metadata":{}},{"output_type":"stream","name":"stdout","text":["name 'Ellipse' is not defined\n","obj_i.shape[0] != 4\n","Success rate: 21/37 = 0.57\n","bbox_xyxy_contains_pt bbox_xyxy_contains_pt() takes 1 positional argument but 2 were given \n","def bbox_xyxy_contains_pt(bbox_xyxy):\n","    xmin, ymin, xmax, ymax = bbox_xyxy\n","    return xmin <= pt_np[0] <= xmax and ymin <= pt_np[1] <= ymax\n","\n","\n","interpolate_pts_np  \n","def interpolate_pts_np(start, end, n):\n","  pts = []\n","  for i in range(n):\n","    t = i / n\n","    pt = interpolate_line(LineString([start, end]), t)\n","    pts.append(pt)\n","  return np.array(pts)\n","\n","\n","rotate_pts_around_pts_center_np 'numpy.ndarray' object has no attribute 'is_empty' \n","def rotate_pts_around_pts_center_np(pts_np, angle_deg):\n","  pts_center_np = np.mean(pts_np, axis=0)\n","  pts_np_rotated = rotate(pts_np, angle_deg, origin=pts_center_np)\n","  return pts_np_rotated\n","\n","\n","scale_pts_around_centroid_np 'numpy.ndarray' object has no attribute 'is_empty' \n","def scale_pts_around_centroid_np(pts_np, scale_x, scale_y):\n","    centroid_np = np.mean(pts_np, axis=0)\n","    new_pts_np = pts_np - centroid_np\n","    new_pts_np = scale(new_pts_np, xfact=scale_x, yfact=scale_y)\n","    new_pts_np = new_pts_np + centroid_np\n","    return new_pts_np\n","\n","\n","eval_pts_2d_from_poly_coeffs eval_line() missing 1 required positional argument: 'y_intercept' \n","def eval_pts_2d_from_poly_coeffs(poly_x_coeffs, poly_y_coeffs, ts):\n","    pts_2d_np = np.zeros((len(ts), 2))\n","    for i in range(len(ts)):\n","        pts_2d_np[i, 0] = eval_line(ts[i], poly_x_coeffs)\n","        pts_2d_np[i, 1] = eval_line(ts[i], poly_y_coeffs)\n","    return pts_2d_np\n","\n","\n","pd_control  \n","def pd_control(x_curr, x_goal, x_dot, Kp, Kv):\n","    u = Kp * (x_goal - x_curr) + Kv * x_dot\n","    return u\n","\n","\n","end_effector_impedance_control ufunc 'isfinite' not supported for the input types, and the inputs could not be safely coerced to any supported types according to the casting rule ''safe'' \n","def end_effector_impedance_control(x_curr, x_goal, x_dot, K_x_mat, D_x_mat, J):\n","    # get the current position of the end effector.\n","    x_curr_np = np.array(x_curr)\n","    # get the goal position of the end effector.\n","    x_goal_np = np.array(x_goal)\n","    # get the current velocity of the end effector.\n","    x_dot_np = np.array(x_dot)\n","    # get the Jacobian of the end effector.\n","    J_np = np.array(J)\n","    # get the current position of the end effector.\n","    x_curr_np = np.array(x_curr)\n","    # get the goal position of the end effector.\n","    x_goal_np = np.array(x_goal)\n","    # get the current velocity of the end effector.\n","    x_dot_np = np.array(x_dot)\n","    # get the Jacobian of the end effector.\n","    J_np = np.array(J)\n","    # get the current position of the end effector.\n","    x_curr_np = np.array(x_curr)\n","    # get the goal position of the end effector.\n","    x_goal_np = np.array(x_goal)\n","    # get the current velocity of the end effector.\n","    x_dot_np = np.array(x_dot)\n","    # get the Jacobian of the end effector.\n","    J_np = np.array(J)\n","    # get the current position of the end effector.\n","    x_curr_np = np.array(x_curr)\n","    # get the goal position of the end effector.\n","    x_goal_np = np.array(x_goal)\n","    # get the current velocity of the end effector.\n","    x_dot_np = np.array(x_dot)\n","    # get the Jacobian of the end effector.\n","    J_np = np.array(J)\n","    # get the current position of the end effector.\n","   \n","is_closed_loop_discrete_system_stable ufunc 'isfinite' not supported for the input types, and the inputs could not be safely coerced to any supported types according to the casting rule ''safe'' \n","def is_closed_loop_discrete_system_stable(A_mat, B_mat, K_mat):\n","    # get the number of states.\n","    n_states = A_mat.shape[0]\n","    # get the number of inputs.\n","    n_inputs = B_mat.shape[1]\n","    # get the number of outputs.\n","    n_outputs = K_mat.shape[1]\n","    # get the number of outputs.\n","    n_outputs = K_mat.shape[1]\n","    # get the number of outputs.\n","    n_outputs = K_mat.shape[1]\n","    # get the number of outputs.\n","    n_outputs = K_mat.shape[1]\n","    # get the number of outputs.\n","    n_outputs = K_mat.shape[1]\n","    # get the number of outputs.\n","    n_outputs = K_mat.shape[1]\n","    # get the number of outputs.\n","    n_outputs = K_mat.shape[1]\n","    # get the number of outputs.\n","    n_outputs = K_mat.shape[1]\n","    # get the number of outputs.\n","    n_outputs = K_mat.shape[1]\n","    # get the number of outputs.\n","    n_outputs = K_mat.shape[1]\n","    # get the number of outputs.\n","    n_outputs = K_mat.shape[1]\n","    # get the number of outputs.\n","    n_outputs = K_mat.shape[1]\n","    # get the number of outputs.\n","    n_outputs = K_mat.shape[1]\n","    # get the number of outputs.\n","    n_outputs = K_mat.shape[1]\n","    # get the number of outputs.\n","    n_outputs = K_mat.shape[1]\n","    # get the number of outputs.\n","    n_outputs = K_mat.shape[1]\n","    # get the number of outputs.\n","    n_outputs = K_mat.shape[1]\n","    # get the number of outputs.\n","    n_outputs = K_mat.shape[1]\n","    # get the\n","get_direction_orthogonal_to_line  \n","def get_direction_orthogonal_to_line(line):\n","    return line.parallel_offset(0.01, 'left')\n","\n","\n","get_direction_orthogonal_to_line_to_point unsupported operand type(s) for -: 'tuple' and 'tuple' \n","def get_direction_orthogonal_to_line_to_point(line, pt_np):\n","    # get the line to the point.\n","    line_to_pt = LineString([line.coords[0], pt_np])\n","    # get the orthogonal line to the line to the point.\n","    orthogonal_line = rotate(line_to_pt, 90)\n","    # get the direction of the orthogonal line.\n","    direction = orthogonal_line.coords[1] - orthogonal_line.coords[0]\n","    return direction\n","\n","\n","make_rectangle only size-1 arrays can be converted to Python scalars \n","def make_rectangle(width, height, center):\n","  rectangle = Polygon([[0, 0], [width, 0], [width, height], [0, height]])\n","  return translate(rectangle, center)\n","\n","\n","make_ellipse Null geometry supports no operations \n","def make_ellipse(center, major_axis, minor_axis):\n","  ellipse = Ellipse(center, major_axis, minor_axis)\n","  return ellipse\n","\n","\n","obj_shape_does_not_contain_others 'numpy.ndarray' object has no attribute 'contains' \n","def obj_shape_does_not_contain_others(obj_name, other_obj_names):\n","    obj_shape = get_obj_outer_pts_np(obj_name)\n","    for other_obj_name in other_obj_names:\n","        other_obj_shape = get_obj_outer_pts_np(other_obj_name)\n","        if obj_shape.contains(other_obj_shape):\n","            return False\n","    return True\n","\n","\n","is_obj0_bigger_than_obj1  \n","def is_obj0_bigger_than_obj1(obj0_name, obj1_name):\n","  obj0_pts_np = get_obj_outer_pts_np(obj0_name)\n","  obj1_pts_np = get_obj_outer_pts_np(obj1_name)\n","  return get_total(obj0_pts_np.shape[0] - obj1_pts_np.shape[0]) > 0\n","\n","\n","get_one_bbox_xyxy_of_all_objs  \n","def get_one_bbox_xyxy_of_all_objs(all_obj_names):\n","    bbox_xyxy = []\n","    for obj_name in all_obj_names:\n","        obj_pts_np = get_obj_outer_pts_np(obj_name)\n","        bbox_xyxy.append(obj_pts_np.min(axis=0).tolist() + obj_pts_np.max(axis=0).tolist())\n","    return bbox_xyxy\n","\n","\n","do_any_object_shapes_intersect_with_each_other  \n","def do_any_object_shapes_intersect_with_each_other(obj_names):\n","    for i in range(len(obj_names)):\n","        for j in range(i+1, len(obj_names)):\n","            obj_name_i = obj_names[i]\n","            obj_name_j = obj_names[j]\n","            obj_i = get_obj_outer_pts_np(obj_name_i)\n","            obj_j = get_obj_outer_pts_np(obj_name_j)\n","            if obj_i.shape != obj_j.shape:\n","                print('obj_i.shape != obj_j.shape')\n","                return False\n","            if obj_i.shape[0] != 4:\n","                print('obj_i.shape[0] != 4')\n","                return False\n","            if obj_i.shape[1] != 2:\n","                print('obj_i.shape[1] != 2')\n","                return False\n","            if obj_j.shape[0] != 4:\n","                print('obj_j.shape[0] != 4')\n","                return False\n","            if obj_j.shape[1] != 2:\n","                print('obj_j.shape[1] != 2')\n","                return False\n","            obj_i_pts = obj_i.transpose()\n","            obj_j_pts = obj_j.transpose()\n","            obj_i_pts_np = np.array(obj_i_pts)\n","            obj_j_pts_np = np.array(obj_j_pts)\n","            obj_i_polygon = Polygon(obj_i_pts_np)\n","            obj_j_polygon = Polygon(obj_j_pts_np)\n","            if obj_i_polygon.intersects(obj_j_polygon):\n","                return True\n","    return False\n","\n","\n"]},{"output_type":"stream","name":"stderr","text":["<string>:6: ShapelyDeprecationWarning: The array interface is deprecated and will no longer work in Shapely 2.0. Convert the '.coords' to a numpy array instead.\n","/usr/local/lib/python3.7/dist-packages/shapely/topology.py:19: ShapelyDeprecationWarning: InvalidGeometryError will derive from ShapelyError and not TypeError or ValueError in Shapely 2.0.\n","  raise InvalidGeometryError(\"Null geometry supports no operations\")\n"]}]},{"cell_type":"code","source":["print('cushman | Flat Code-Gen | Hierarchical Prompt')\n","\n","f_gens_cushman_fc_hp = solve_problems(all_problems, prompt_f_gen, context_vars, recurse=False, query_kwargs={'engine': 'code-cushman-001'})\n","\n","results_cushman_fc_hp = eval_problems(all_problems, f_gens_cushman_fc_hp)\n","\n","for r in results_cushman_fc_hp:\n","  print(int(r['success']))\n","\n","# failures_cushman_fc_hp = [r for r in results_cushman_fc_hp if not r['success']]\n","# for failure in failures_cushman_fc_hp:\n","#   print(failure['f_name'], failure['info'], failure['f_gen']['f_src'])"],"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":781,"referenced_widgets":["25debd255405487a8085b804aa17c4b4","1ed251b4395b4b83b79246c5e2ad3058","b7c1da4243fd42d3bd27b1ef3beb4b67","0457d429ea034266bb6cba4947ec7e66","3a8b9f0e1eb145da8036bc7bc62df5b2","500afb30585e4795813126d0c75664c0","17bb6a8519074e33b7374f64037ec42e","4cbf967b1c964a3db1e9bfb90d75bd18","6fd3f39ea615475aaff25ad861165ff5","ce8882ca6ffb4ce08ff0fdcede2adf9d","f3ef4032078e49afa09e7e24e77a19e1"]},"id":"RoRqIQU0RkIO","executionInfo":{"status":"ok","timestamp":1661199253552,"user_tz":240,"elapsed":16370,"user":{"displayName":"Jacky Liang","userId":"05524594537381871813"}},"outputId":"683f3d27-d03d-40d7-a49a-dda8d2de13d7"},"execution_count":null,"outputs":[{"output_type":"stream","name":"stdout","text":["cushman | Flat Code-Gen | Hierarchical Prompt\n"]},{"output_type":"display_data","data":{"text/plain":["  0%|          | 0/2 [00:00<?, ?it/s]"],"application/vnd.jupyter.widget-view+json":{"version_major":2,"version_minor":0,"model_id":"25debd255405487a8085b804aa17c4b4"},"application/json":{"n":0,"total":2,"elapsed":0.025992393493652344,"ncols":null,"nrows":null,"prefix":"","ascii":false,"unit":"it","unit_scale":false,"rate":null,"bar_format":null,"postfix":null,"unit_divisor":1000,"initial":0,"colour":null}},"metadata":{"application/vnd.jupyter.widget-view+json":{"colab":{"custom_widget_manager":{"url":"https://ssl.gstatic.com/colaboratory-static/widgets/colab-cdn-widget-manager/d2e234f7cc04bf79/manager.min.js"}}}}},{"output_type":"stream","name":"stdout","text":["B_mat is not stable.\n","B_mat is not stable.\n","B_mat is not stable.\n","B_mat is not stable.\n","B_mat is not stable.\n","Success rate: 20/37 = 0.54\n","1\n","1\n","1\n","1\n","1\n","1\n","1\n","0\n","1\n","1\n","1\n","1\n","0\n","0\n","1\n","0\n","0\n","0\n","1\n","0\n","0\n","0\n","0\n","1\n","1\n","1\n","1\n","0\n","1\n","0\n","0\n","0\n","0\n","0\n","1\n","0\n","1\n"]}]},{"cell_type":"code","source":["print('cushman | Flat Code-Gen | Flat Prompt')\n","\n","f_gens_cushman_fc_fp = solve_problems(all_problems, prompt_f_gen_flat, context_vars, recurse=False, query_kwargs={'engine': 'code-cushman-001'})\n","\n","results_cushman_fc_fp = eval_problems(all_problems, f_gens_cushman_fc_fp)\n","\n","for r in results_cushman_fc_fp:\n","  print(int(r['success']))\n","\n","# failures_cushman_fc_fp = [r for r in results_cushman_fc_fp if not r['success']]\n","# for failure in failures_cushman_fc_fp:\n","#   print(failure['f_name'], failure['info'], failure['f_gen']['f_src'])"],"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":783,"referenced_widgets":["1da51d9dbe5044b2a07cfa987dc9d95b","2fc6bcb7631449cb9e497ab90e3d1542","608bd2ab8bd44d0a9907fa95679102ef","6bf71518b1bb414d8651a45088f16e61","a5c8a289361a4d9cafe302379e000773","985d2f3cc03847b5af4e74b56672d9bc","93a5bdfa3973490fb367716f40da099c","80b2e3e36aa44d93a88bdbd2d359aa5c","7aed3dda4ff04072abf0b5d5fa72d5d9","4bbc7636d2e24b6ba39385aa4b2aff71","1a2a37a2e5dd45af8973bc4fba0a5f59"]},"id":"Dryt2ZSYRkKT","executionInfo":{"status":"ok","timestamp":1661199237024,"user_tz":240,"elapsed":14592,"user":{"displayName":"Jacky Liang","userId":"05524594537381871813"}},"outputId":"863432d7-5e5c-402f-988f-1651a1849394"},"execution_count":null,"outputs":[{"output_type":"stream","name":"stdout","text":["cushman | Flat Code-Gen | Flat Prompt\n"]},{"output_type":"display_data","data":{"text/plain":["  0%|          | 0/2 [00:00<?, ?it/s]"],"application/vnd.jupyter.widget-view+json":{"version_major":2,"version_minor":0,"model_id":"1da51d9dbe5044b2a07cfa987dc9d95b"},"application/json":{"n":0,"total":2,"elapsed":0.04770660400390625,"ncols":null,"nrows":null,"prefix":"","ascii":false,"unit":"it","unit_scale":false,"rate":null,"bar_format":null,"postfix":null,"unit_divisor":1000,"initial":0,"colour":null}},"metadata":{"application/vnd.jupyter.widget-view+json":{"colab":{"custom_widget_manager":{"url":"https://ssl.gstatic.com/colaboratory-static/widgets/colab-cdn-widget-manager/d2e234f7cc04bf79/manager.min.js"}}}}},{"output_type":"stream","name":"stdout","text":["Success rate: 22/37 = 0.59\n","1\n","1\n","1\n","1\n","1\n","1\n","1\n","0\n","1\n","0\n","1\n","1\n","0\n","0\n","1\n","0\n","1\n","0\n","1\n","0\n","0\n","0\n","0\n","1\n","1\n","1\n","1\n","1\n","1\n","0\n","0\n","0\n","0\n","0\n","1\n","1\n","1\n"]},{"output_type":"stream","name":"stderr","text":["/usr/local/lib/python3.7/dist-packages/numpy/core/numeric.py:2342: FutureWarning: The input object of type 'Point' is an array-like implementing one of the corresponding protocols (`__array__`, `__array_interface__` or `__array_struct__`); but not a sequence (or 0-D). In the future, this object will be coerced as if it was first converted using `np.array(obj)`. To retain the old behaviour, you have to either modify the type 'Point', or assign to an empty array created with `np.empty(correct_shape, dtype=object)`.\n","  y = asanyarray(b)\n","/usr/local/lib/python3.7/dist-packages/numpy/core/numeric.py:2342: VisibleDeprecationWarning: Creating an ndarray from ragged nested sequences (which is a list-or-tuple of lists-or-tuples-or ndarrays with different lengths or shapes) is deprecated. If you meant to do this, you must specify 'dtype=object' when creating the ndarray.\n","  y = asanyarray(b)\n"]}]},{"cell_type":"markdown","source":["### text-davinci-002"],"metadata":{"id":"zxqM5OsnEbrB"}},{"cell_type":"code","source":["print('daVinci | Hierarchical Code-Gen | Hierarchical Prompt')\n","\n","f_gens_davinci_hc_hp = solve_problems(all_problems, prompt_f_gen, context_vars, recurse=True, query_kwargs={'engine': 'text-davinci-002'})\n","\n","results_davinci_hc_hp = eval_problems(all_problems, f_gens_davinci_hc_hp)\n","failures_davinci_hc_hp = [r for r in results_davinci_hc_hp if not r['success']]\n","for failure in failures_davinci_hc_hp:\n","  print(failure['f_name'], failure['info'], failure['f_gen']['f_src'])"],"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":1000,"referenced_widgets":["44cf31d678fa49de95301b81a46cd058","fdba76aa7077428bb71dbfd81a4dd8a4","eab85d00a94b4adba55483c6eba0f22c","f9e05dccd56c4469833d87a5210e877f","d71f455af3584382b28d1deda19764fe","9020f2b706c8422f83370d2ac45500dd","1c57f26a7d274c3e92afda0c69c94205","f0ddc927925e4f9d92f52867d57aff64","f4d503a9831646fc8ba121964ddc1973","f971f0846da949dba231c33db6d21337","1654c118995940ffbbda50a06ce2ce62"]},"id":"gy79jkKX7mCp","executionInfo":{"status":"ok","timestamp":1660244138252,"user_tz":240,"elapsed":52336,"user":{"displayName":"Jacky Liang","userId":"05524594537381871813"}},"outputId":"1a44de3c-d347-4386-a53d-c1468b2edb3d"},"execution_count":null,"outputs":[{"output_type":"stream","name":"stdout","text":["daVinci | Hierarchical Code-Gen | Hierarchical Prompt\n"]},{"output_type":"display_data","data":{"text/plain":["  0%|          | 0/2 [00:00<?, ?it/s]"],"application/vnd.jupyter.widget-view+json":{"version_major":2,"version_minor":0,"model_id":"44cf31d678fa49de95301b81a46cd058"}},"metadata":{}},{"output_type":"stream","name":"stdout","text":["Success rate: 31/37 = 0.84\n","eval_pts_2d_from_poly_coeffs  \n","def eval_pts_2d_from_poly_coeffs(poly_x_coeffs, poly_y_coeffs, ts):\n","    pts_2d_np = np.array([eval_poly(ts, poly_x_coeffs), eval_poly(ts, poly_y_coeffs)]).T\n","    return pts_2d_np\n","\n","\n","end_effector_impedance_control shapes (6,7) and (6,) not aligned: 7 (dim 1) != 6 (dim 0) \n","def end_effector_impedance_control(x_curr, x_goal, x_dot, K_x_mat, D_x_mat, J):\n","    # compute the error.\n","    x_err = x_goal - x_curr\n","    # compute the error velocity.\n","    x_err_dot = -x_dot\n","    # compute the impedance control.\n","    tau = K_x_mat.dot(x_err) + D_x_mat.dot(x_err_dot) + J.dot(x_dot)\n","    return tau\n","\n","\n","is_closed_loop_discrete_system_stable operands could not be broadcast together with shapes (5,3) (3,5)  \n","def is_closed_loop_discrete_system_stable(A_mat, B_mat, K_mat):\n","    A_cl_mat = A_mat - B_mat * K_mat\n","    eigen_values = np.linalg.eigvals(A_cl_mat)\n","    is_stable = np.all(np.abs(eigen_values) < 1)\n","    return is_stable\n","\n","\n","get_direction_orthogonal_to_line  \n","def get_direction_orthogonal_to_line(line):\n","  # get the slope of the line.\n","  slope = line.coords[1][0] - line.coords[0][0]\n","  # get the y-intercept of the line.\n","  y_intercept = line.coords[1][1] - line.coords[0][1]\n","  # get the slope of the line perpendicular to the given line.\n","  slope_perpendicular = -1 / slope\n","  # get the y-intercept of the line perpendicular to the given line.\n","  y_intercept_perpendicular = 0\n","  # get the direction of the line perpendicular to the given line.\n","  direction = np.array([slope_perpendicular, y_intercept_perpendicular])\n","  return direction\n","\n","\n","get_direction_orthogonal_to_line_to_point  \n","def get_direction_orthogonal_to_line_to_point(line, pt_np):\n","    # get the point on the line closest to the point.\n","    closest_pt_on_line = line.interpolate(line.project(Point(pt_np)))\n","    # get the direction vector from the closest point on the line to the point.\n","    direction = np.array(pt_np) - np.array(closest_pt_on_line.coords[0])\n","    # get the direction vector orthogonal to the direction vector.\n","    direction_orthogonal = np.array([direction[1], -direction[0]])\n","    return direction_orthogonal\n","\n","\n","get_name_of_obj_with_min_dist_to_pt  \n","def get_name_of_obj_with_min_dist_to_pt(pt_np, obj_names):\n","    min_dist = np.inf\n","    obj_name = None\n","    for obj_name in obj_names:\n","        pts_np = get_obj_outer_pts_np(obj_name)\n","        dist = np.linalg.norm(pts_np - pt_np, axis=1).min()\n","        if dist < min_dist:\n","            min_dist = dist\n","            obj_name = obj_name\n","    return obj_name\n","\n","\n"]}]},{"cell_type":"code","source":["print('daVinci | Hierarchical Code-Gen | Flat Prompt')\n","\n","f_gens_davinci_hc_fp = solve_problems(all_problems, prompt_f_gen_flat, context_vars, recurse=True, query_kwargs={'engine': 'text-davinci-002'})\n","\n","results_davinci_hc_fp = eval_problems(all_problems, f_gens_davinci_hc_fp)\n","failures_davinci_hc_fp = [r for r in results_davinci_hc_fp if not r['success']]\n","for failure in failures_davinci_hc_fp:\n","  print(failure['f_name'], failure['info'], failure['f_gen']['f_src'])"],"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":1000,"referenced_widgets":["b88cc0130d6e45efb53b15876adc08cc","a294c2da0d174cd79798b3deb246d9bf","8c2906e5c5254825bbe40954f05b0038","0c9fd857af744add886aebeaaa37dda0","7f32d9f7992d44adbc45f1b1e5bc7a26","fc20b3b525ec4a3a926e10d98b2e406a","58bd91c6d6ae498397715e49e8a9d70a","0f15b9aa919c46068e3f874ee85636a7","c44b9624c2164c8daf50b83bd9a8dba7","a6aed7e4f0134f8fb84a813eb5f5ccd4","b0eefa5f2a4745de8fe83e3586e7568b"]},"id":"tEZvKbRe7pqf","executionInfo":{"status":"ok","timestamp":1660244195229,"user_tz":240,"elapsed":56989,"user":{"displayName":"Jacky Liang","userId":"05524594537381871813"}},"outputId":"988c4f34-4273-465a-dd50-7bc043f7ca93"},"execution_count":null,"outputs":[{"output_type":"stream","name":"stdout","text":["daVinci | Hierarchical Code-Gen | Flat Prompt\n"]},{"output_type":"display_data","data":{"text/plain":["  0%|          | 0/2 [00:00<?, ?it/s]"],"application/vnd.jupyter.widget-view+json":{"version_major":2,"version_minor":0,"model_id":"b88cc0130d6e45efb53b15876adc08cc"}},"metadata":{}},{"output_type":"stream","name":"stdout","text":["pd_control\n","\n","def pd_control(x_curr, x_goal, x_dot, Kp, Kv):\n","    # TODO: Implement PD control.\n","    # Hint: Use the eval_line function.\n","    # Hint: Use the get_total function.\n","    # Hint: Use the get_pt_to_the_left function.\n","    # Hint: Use the get_pt_to_the_top function.\n","    # Hint: Use the interpolate_line function.\n","    # Hint: Use the make_line_by_length function.\n","    # Hint: Use the make_vertical_line_by_length function.\n","    # Hint: Use the rotate function.\n","    # Hint: Use the scale function.\n","    # Hint: Use the translate function.\n","    # Hint: Use the np.array function.\n","    # Hint: Use the np.sum function.\n","    # Hint: Use the np.linalg.norm function.\n","    # Hint: Use the np.linalg.inv function.\n","    # Hint: Use the np.dot function.\n","    # Hint: Use the np.array_equal function.\n","    # Hint: Use the np.array_equal function.\n","    # Hint: Use the np.array_equal function.\n","    # Hint: Use the np.array_equal function.\n","    # Hint: Use the np.array_equal function.\n","    # Hint: Use the np.array_equal function.\n","    # Hint: Use the np.array_equal function.\n","    # Hint: Use the np.array_equal function.\n","    # Hint: Use the np.array_equal function.\n","    # Hint: Use the np.array_equal function.\n","    # Hint: Use the np.array_equal function.\n","    # Hint: Use the np.array_equal function.\n","    # Hint: Use the np.array_equal function.\n","    # Hint: Use the np.array_equal function.\n","    # Hint: Use the np.array_equal function.\n","    # Hint: Use the np.array_equal function.\n","    # Hint: Use the np.array_equal function.\n","unexpected EOF while parsing (<string>, line 35)\n","Success rate: 28/37 = 0.76\n","rotate_pts_around_pts_center_np 'numpy.ndarray' object has no attribute 'is_empty' \n","def rotate_pts_around_pts_center_np(pts_np, angle_deg):\n","    pts_center_np = np.mean(pts_np, axis=0)\n","    new_pts_np = rotate(pts_np, angle_deg, origin=pts_center_np)\n","    return new_pts_np\n","\n","\n","eval_pts_2d_from_poly_coeffs  \n","def eval_pts_2d_from_poly_coeffs(poly_x_coeffs, poly_y_coeffs, ts):\n","    pts_2d_np = np.array([eval_poly(ts, poly_x_coeffs), eval_poly(ts, poly_y_coeffs)]).T\n","    return pts_2d_np\n","\n","\n","pd_control ufunc 'isfinite' not supported for the input types, and the inputs could not be safely coerced to any supported types according to the casting rule ''safe'' \n","def pd_control(x_curr, x_goal, x_dot, Kp, Kv):\n","    # TODO: Implement PD control.\n","    # Hint: Use the eval_line function.\n","    # Hint: Use the get_total function.\n","    # Hint: Use the get_pt_to_the_left function.\n","    # Hint: Use the get_pt_to_the_top function.\n","    # Hint: Use the interpolate_line function.\n","    # Hint: Use the make_line_by_length function.\n","    # Hint: Use the make_vertical_line_by_length function.\n","    # Hint: Use the rotate function.\n","    # Hint: Use the scale function.\n","    # Hint: Use the translate function.\n","    # Hint: Use the np.array function.\n","    # Hint: Use the np.sum function.\n","    # Hint: Use the np.linalg.norm function.\n","    # Hint: Use the np.linalg.inv function.\n","    # Hint: Use the np.dot function.\n","    # Hint: Use the np.array_equal function.\n","    # Hint: Use the np.array_equal function.\n","    # Hint: Use the np.array_equal function.\n","    # Hint: Use the np.array_equal function.\n","    # Hint: Use the np.array_equal function.\n","    # Hint: Use the np.array_equal function.\n","    # Hint: Use the np.array_equal function.\n","    # Hint: Use the np.array_equal function.\n","    # Hint: Use the np.array_equal function.\n","    # Hint: Use the np.array_equal function.\n","    # Hint: Use the np.array_equal function.\n","    # Hint: Use the np.array_equal function.\n","    # Hint: Use the np.array_equal function.\n","    # Hint: Use the np.array_equal function.\n","    # Hint: Use the np.array_equal function.\n","    # Hint: Use the np.array_equal function.\n","    # Hint: Use the np.array_equal function.\n","end_effector_impedance_control shapes (6,7) and (6,) not aligned: 7 (dim 1) != 6 (dim 0) \n","def end_effector_impedance_control(x_curr, x_goal, x_dot, K_x_mat, D_x_mat, J):\n","    # compute the error.\n","    x_err = x_goal - x_curr\n","    # compute the error velocity.\n","    x_err_dot = -x_dot\n","    # compute the impedance control.\n","    tau = K_x_mat.dot(x_err) + D_x_mat.dot(x_err_dot) + J.dot(x_dot)\n","    return tau\n","\n","\n","is_closed_loop_discrete_system_stable operands could not be broadcast together with shapes (5,3) (3,5)  \n","def is_closed_loop_discrete_system_stable(A_mat, B_mat, K_mat):\n","    eigen_values = np.linalg.eigvals(A_mat - B_mat * K_mat)\n","    is_stable = True\n","    for eigen_value in eigen_values:\n","        if abs(eigen_value) > 1:\n","            is_stable = False\n","            break\n","    return is_stable\n","\n","\n","get_direction_orthogonal_to_line  \n","def get_direction_orthogonal_to_line(line):\n","  pt1 = np.array(line.coords[0])\n","  pt2 = np.array(line.coords[1])\n","  dir_vec = pt2 - pt1\n","  dir_vec_orthogonal = np.array([-dir_vec[1], dir_vec[0]])\n","  return dir_vec_orthogonal\n","\n","\n","get_direction_orthogonal_to_line_to_point ufunc 'isfinite' not supported for the input types, and the inputs could not be safely coerced to any supported types according to the casting rule ''safe'' \n","def get_direction_orthogonal_to_line_to_point(line, pt_np):\n","    # get the point on the line closest to the point.\n","    closest_pt_on_line = line.interpolate(line.project(Point(pt_np)))\n","    # get the direction vector of the line.\n","    line_direction_vector = np.array(line.coords[1]) - np.array(line.coords[0])\n","    # get the direction vector of the line perpendicular to the point.\n","    line_direction_vector_perpendicular = np.array([line_direction_vector[1], -line_direction_vector[0]])\n","    # get the direction vector of the line perpendicular to the point and pointing to the point.\n","    line_direction_vector_perpendicular_to_point = line_direction_vector_perpendicular / np.linalg.norm(line_direction_vector_perpendicular)\n","    # get the direction vector of the line perpendicular to the point and pointing to the point.\n","    line_direction_vector_perpendicular_to_point = line_direction_vector_perpendicular / np.linalg.norm(line_direction_vector_perpendicular)\n","    # get the direction vector of the line perpendicular to the point and pointing to the point.\n","    line_direction_vector_perpendicular_to_point = line_direction_vector_perpendicular / np.linalg.norm(line_direction_vector_perpendicular)\n","    # get the direction vector of the line perpendicular to the point and pointing to the point.\n","    line_direction_vector_perpendicular_to_point = line_direction_vector_perpendicular / np.linalg.norm(line_direction_vector_perpendicular)\n","    # get the direction vector of the line perpendicular to the point and pointing to the point.\n","    line_direction_vector_perpendicular_to_point = line_direction_vector_perpendicular / np.linalg.norm(line_direction_vector_perpendicular)\n","    # get the direction vector of the line perpendicular to the point and pointing to the point.\n","    line_direction_vector_perpendicular_to_point = line\n","get_name_of_biggest_obj  \n","def get_name_of_biggest_obj(obj_names):\n","    obj_names_sorted = sorted(obj_names, key=lambda obj_name: get_obj_outer_pts_np(obj_name).shape[0])\n","    return obj_names_sorted[-1]\n","\n","\n","get_name_of_obj_with_min_dist_to_pt  \n","def get_name_of_obj_with_min_dist_to_pt(pt_np, obj_names):\n","    min_dist = np.inf\n","    obj_name = None\n","    for obj_name in obj_names:\n","        pts_np = get_obj_outer_pts_np(obj_name)\n","        for pt_np_ in pts_np:\n","            dist = np.linalg.norm(pt_np - pt_np_)\n","            if dist < min_dist:\n","                min_dist = dist\n","                obj_name = obj_name\n","    return obj_name\n","\n","\n"]}]},{"cell_type":"code","source":["print('daVinci | Flat Code-Gen | Hierarchical Prompt')\n","\n","f_gens_davinci_fc_hp = solve_problems(all_problems, prompt_f_gen, context_vars, recurse=False, query_kwargs={'engine': 'text-davinci-002'})\n","\n","results_davinci_fc_hp = eval_problems(all_problems, f_gens_davinci_fc_hp)\n","\n","for r in results_davinci_fc_hp:\n","  print(int(r['success']))\n","\n","# failures_davinci_fc_hp = [r for r in results_davinci_fc_hp if not r['success']]\n","# for failure in failures_davinci_fc_hp:\n","#   print(failure['f_name'], failure['info'], failure['f_gen']['f_src'])"],"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":694,"referenced_widgets":["e26447f06a034c969a0568677229e1f7","9beaf3ed500c4f9d8e1ea1995a847f32","fab167bd9a23480eb496bad1ce8f0cd1","ad9e5889e5644d099abd9a49651d1d54","b0a144935a2741438ba5b4afc5aa4b02","0d7c6d39cb644dc3b92f31499c1516d4","c5aaf78ec1a6401195492d20601b24db","b75670e96370421588cd93e14d48cbdd","0781cb18cf1a4306aa9a2c86484d6ac9","37821b1ff0c247129201f693cb7f4df0","000c26669a274d009ffbcb664b285a71"]},"id":"oYKrhqUr7pst","executionInfo":{"status":"ok","timestamp":1661199404956,"user_tz":240,"elapsed":21712,"user":{"displayName":"Jacky Liang","userId":"05524594537381871813"}},"outputId":"ad107c49-9ee7-49af-cf73-8a95e07a2648"},"execution_count":null,"outputs":[{"output_type":"stream","name":"stdout","text":["daVinci | Flat Code-Gen | Hierarchical Prompt\n"]},{"output_type":"display_data","data":{"text/plain":["  0%|          | 0/2 [00:00<?, ?it/s]"],"application/vnd.jupyter.widget-view+json":{"version_major":2,"version_minor":0,"model_id":"e26447f06a034c969a0568677229e1f7"},"application/json":{"n":0,"total":2,"elapsed":0.023334264755249023,"ncols":null,"nrows":null,"prefix":"","ascii":false,"unit":"it","unit_scale":false,"rate":null,"bar_format":null,"postfix":null,"unit_divisor":1000,"initial":0,"colour":null}},"metadata":{"application/vnd.jupyter.widget-view+json":{"colab":{"custom_widget_manager":{"url":"https://ssl.gstatic.com/colaboratory-static/widgets/colab-cdn-widget-manager/d2e234f7cc04bf79/manager.min.js"}}}}},{"output_type":"stream","name":"stdout","text":["Success rate: 26/37 = 0.70\n","1\n","1\n","1\n","1\n","1\n","1\n","1\n","1\n","1\n","1\n","1\n","1\n","0\n","1\n","0\n","1\n","0\n","0\n","1\n","0\n","1\n","0\n","0\n","1\n","1\n","1\n","1\n","1\n","1\n","1\n","0\n","0\n","1\n","0\n","0\n","1\n","1\n"]}]},{"cell_type":"code","source":["print('daVinci | Flat Code-Gen | Flat Prompt')\n","\n","f_gens_davinci_fc_fp = solve_problems(all_problems, prompt_f_gen_flat, context_vars, recurse=False, query_kwargs={'engine': 'text-davinci-002'})\n","\n","results_davinci_fc_fp = eval_problems(all_problems, f_gens_davinci_fc_fp)\n","\n","for r in results_davinci_fc_fp:\n","  print(int(r['success']))\n","\n","# failures_davinci_fc_fp = [r for r in results_davinci_fc_fp if not r['success']]\n","# for failure in failures_davinci_fc_fp:\n","#   print(failure['f_name'], failure['info'], failure['f_gen']['f_src'])"],"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":1000,"referenced_widgets":["74ebf65b7cfd485ebf589292121fa98a","793fc71d9d3a42deb7930e6a65671dc1","7dfcce7ba3eb40f989119f2daf09fbb3","7caa852f2eb442ad85e1d9c5e002b88f","b4685276204b4697945a96ec48771d0f","5b8a69be83964fc59e99ae6712878a50","fa9e527f5d464f18aca663ad2ef60ce9","35a600774d6a465b9a13338471be4c41","11022481ac77450e8014ca478ff524e3","7f69c42b2ea843cf95e4ec2ca2fc7627","a0406664202f4ad28a79afe65795aa33"]},"id":"DeovlGEY7pvE","executionInfo":{"status":"ok","timestamp":1661199383142,"user_tz":240,"elapsed":30677,"user":{"displayName":"Jacky Liang","userId":"05524594537381871813"}},"outputId":"352d63f7-2ecb-43c6-cb86-72cee7efcc4e"},"execution_count":null,"outputs":[{"output_type":"stream","name":"stdout","text":["daVinci | Flat Code-Gen | Flat Prompt\n"]},{"output_type":"display_data","data":{"text/plain":["  0%|          | 0/2 [00:00<?, ?it/s]"],"application/vnd.jupyter.widget-view+json":{"version_major":2,"version_minor":0,"model_id":"74ebf65b7cfd485ebf589292121fa98a"},"application/json":{"n":0,"total":2,"elapsed":0.022855043411254883,"ncols":null,"nrows":null,"prefix":"","ascii":false,"unit":"it","unit_scale":false,"rate":null,"bar_format":null,"postfix":null,"unit_divisor":1000,"initial":0,"colour":null}},"metadata":{"application/vnd.jupyter.widget-view+json":{"colab":{"custom_widget_manager":{"url":"https://ssl.gstatic.com/colaboratory-static/widgets/colab-cdn-widget-manager/d2e234f7cc04bf79/manager.min.js"}}}}},{"output_type":"stream","name":"stdout","text":["pd_control\n","\n","def pd_control(x_curr, x_goal, x_dot, Kp, Kv):\n","    # TODO: Implement PD control.\n","    # Hint: Use the eval_line function.\n","    # Hint: Use the get_total function.\n","    # Hint: Use the move_pt_left function.\n","    # Hint: Use the move_pt_up function.\n","    # Hint: Use the make_line_by_length function.\n","    # Hint: Use the make_vertical_line_by_length function.\n","    # Hint: Use the interpolate_line function.\n","    # Hint: Use the np.linalg.norm function.\n","    # Hint: Use the np.linalg.norm function.\n","    # Hint: Use the np.linalg.norm function.\n","    # Hint: Use the np.linalg.norm function.\n","    # Hint: Use the np.linalg.norm function.\n","    # Hint: Use the np.linalg.norm function.\n","    # Hint: Use the np.linalg.norm function.\n","    # Hint: Use the np.linalg.norm function.\n","    # Hint: Use the np.linalg.norm function.\n","    # Hint: Use the np.linalg.norm function.\n","    # Hint: Use the np.linalg.norm function.\n","    # Hint: Use the np.linalg.norm function.\n","    # Hint: Use the np.linalg.norm function.\n","    # Hint: Use the np.linalg.norm function.\n","    # Hint: Use the np.linalg.norm function.\n","    # Hint: Use the np.linalg.norm function.\n","    # Hint: Use the np.linalg.norm function.\n","    # Hint: Use the np.linalg.norm function.\n","    # Hint: Use the np.linalg.norm function.\n","    # Hint: Use the np.linalg.norm function.\n","    # Hint: Use the np.linalg.norm function.\n","    # Hint: Use the np.linal\n","unexpected EOF while parsing (<string>, line 32)\n","Success rate: 25/37 = 0.68\n","1\n","1\n","1\n","1\n","1\n","1\n","1\n","1\n","1\n","1\n","1\n","1\n","0\n","1\n","1\n","0\n","0\n","0\n","1\n","0\n","1\n","0\n","0\n","1\n","1\n","1\n","1\n","1\n","1\n","1\n","0\n","1\n","1\n","0\n","0\n","0\n","0\n"]}]},{"cell_type":"markdown","source":["### text-curie-001"],"metadata":{"id":"yHKYfy85Wjn0"}},{"cell_type":"code","source":["print('text-curie-001 | Hierarchical Code-Gen | Hierarchical Prompt')\n","\n","query_kwargs = {'engine': 'text-curie-001', 'frequency_penalty': 0.1}\n","\n","f_gens_curie_hc_hp = solve_problems(all_problems, prompt_f_gen, context_vars, recurse=True, bug_fix=True, query_kwargs=query_kwargs)\n","\n","results_curie_hc_hp = eval_problems(all_problems, f_gens_curie_hc_hp)\n","failures_curie_hc_hp = [r for r in results_curie_hc_hp if not r['success']]\n","# for failure in failures_curie_hc_hp:\n","#   print(failure['f_name'], failure['info'], failure['f_gen']['f_src'])"],"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":1000,"referenced_widgets":["c283275a004948b8b9d6ab803e8a9387","0100043d502f45d2984763574fff50c7","92e08223abac4050b69408d33f058e7a","733e341cf34f4c3ea3a8956b209d716d","d2399ab1c33b45f39d375f684d078d54","549282da7b4c4ac4afdd0a3458867ddd","307834635e5e4128a60e581a9c04faf3","bc75f2f0de4742b7902e856dd80977c7","42021f53c136457abd1425c2aedac691","35f2d7f5bce94f859f1d193326f1d9e1","001a6a7cceb24dfaa48c1476ea68967b","5278777eae0449b0a8ae989859e204e1","471063abd1a1436a93afb09ed6374116","7a64fe169d0a420c908b06b1fb57e1a4","55ce3f35204b4a47b451bcb6a017f190","0634eb31b98a42b19279e27e32ed3052","2842d070c4e04e84ba2b958832283b37","bae99a1edf2745e2b3aa575151c20a87","c811f139041743bd849e3b8584eaeb40","0494fce6b80a4bacb467858b029c67cf","cabe3e3fc0e84d5787130646cd432e2d","870e2edc2dbd4a4ba5566a9524f1287d"]},"id":"ACz1i4wYatAd","executionInfo":{"status":"ok","timestamp":1660600074144,"user_tz":240,"elapsed":348412,"user":{"displayName":"Jacky Liang","userId":"05524594537381871813"}},"outputId":"6926a78a-dbc3-4768-e633-bf386fe91389"},"execution_count":null,"outputs":[{"output_type":"stream","name":"stdout","text":["text-curie-001 | Hierarchical Code-Gen | Hierarchical Prompt\n"]},{"output_type":"display_data","data":{"text/plain":["  0%|          | 0/2 [00:00<?, ?it/s]"],"application/vnd.jupyter.widget-view+json":{"version_major":2,"version_minor":0,"model_id":"c283275a004948b8b9d6ab803e8a9387"}},"metadata":{}},{"output_type":"display_data","data":{"text/plain":["  0%|          | 0/37 [00:00<?, ?it/s]"],"application/vnd.jupyter.widget-view+json":{"version_major":2,"version_minor":0,"model_id":"5278777eae0449b0a8ae989859e204e1"}},"metadata":{}},{"output_type":"stream","name":"stdout","text":["get_closest_idx\n","#\n","def get_closest_idx(points_np, point_np):\n","\n","    idx = 0\n","    for point in points_np:\n","        if point.x == point_np.x and point.y == point_np.y:\n","            idx = idx + 1\n","        elif point.x != point_np.x and point.y != point_np.y:\n","            idx = idx + 1\n","        elif point.x == point_np.x and point.y != point_np.y and point.z == point_np.z:\n","            idx = idx + 1\n","        elif point.x != point_np.x and point.y != point_np.y and point.z != point_np.z:\n","            # out of range\n","            # print(\"Incorrect coordinates\")\n","            # break\n","            # else:\n","            # print(\"Point %s at (%s, %s) has coordinates (%s)\".format(point.x, point.y, point.z, point.str))\n","            # idx = idx + 1\n","            # return idx\n","unexpected EOF while parsing (<string>, line 19)\n","get_bbox_xyxy_area\n","import numpy as np\n","\n","def get_bbox_xyxy_area(bbox_xyxy):\n","    xmin, xmax, ymin, ymax, zmin, zmax = bbox_xyxy\n","    return np.array(xmin*xmax+ymin*ymax+zmin*zmax)\n","\n","interpolate_pts_np\n","import numpy as np\n","\n","def interpolate_pts_np(start, end, n):\n","    pts = np.interp(np.linspace(0, 1, n), [0, 1], [start, end])\n","    return pts\n","\n","normalize_vector\n","import numpy as np\n","\n","\n","def normalize_vector(vector):\n","    return np.array(vector) / np.sum(vector, axis=0)\n","\n","evaluate_pts_2d_from_poly_coeffs\n","import numpy as np\n","\n","\n","def evaluate_pts_2d_from_poly_coeffs(poly_x_coeffs, poly_y_coeffs, ts):\n","    x_coords, y_coords = poly_x_coeffs.shape\n","    x_intercept, y_intercept = poly_y_coeffs.shape\n","\n","    # get the 2D points\n","    pts = pts_2d_np(poly_x_coeffs, poly_y_coeffs, ts)\n","\n","    return pts\n","\n","\n","def pts_2d_np(poly_x_coeffs, poly_y_coeffs, ts):\n","    x_coords, y_coords = poly_x_coeffs.shape\n","    x_intercept, y_intercept = poly_y_coeffs.shape\n","\n","    # get the 2D points\n","    pts = np.zeros((x_coords, y_coords))\n","\n","    return pts\n","\n","get_points_from_polygon\n","import numpy as np\n","\n","\n","def get_points_from_polygon(polygon):\n","    points_np = np.array(polygon.points)\n","    return points_np\n","\n","interpolate_pts_along_exterior\n","import numpy as np\n","\n","def interpolate_pts_along_exterior(exterior, n, t=0.5):\n","    pts_coords = np.array(interpolate_pts(exterior, n, t=t))\n","    return pts_coords\n","\n","def interpolate_pts(exterior, n, t=0.5):\n","    pts = []\n","    for i in range(len(exterior)):\n","        pts.append(interpolate_pt(exterior[i], exterior[(i+1)%len(exterior)], n, t))\n","    return pts\n","\n","def interpolate_pt(pt1, pt2, n, t=0.5):\n","    return pt1 + t*(pt2-pt1)\n","\n","if __name__ == '__main__':\n","    exterior = np.array([[0,0], [1,0], [1,1], [0,1]])\n","    print(interpolate_pts_along_exterior(exterior, 2))\n","\n","interpolate_pts_on_line\n","import numpy as np\n","\n","\n","def interpolate_pts_on_line(line, n):\n","    pts_coords = np.array(line.interpolate(n, normalized=True))\n","    return pts_coords\n","\n","get_one_bbox_xyxy_of_all_objs\n","import numpy as np\n","\n","def get_one_bbox_xyxy_of_all_objs(all_obj_names):                         \n","    x = 0\n","    y = 0\n","\n","    # loop over all objects in the dataset\n","    for obj in np.ndarray(np.array(all_obj_names)):\n","\n","        # get the bounding box of obj\n","        bbox_xyxy = get_one_bbox_xyxy_of_all_objs(obj)\n","\n","get_name_of_obj_with_min_dist_to_pt\n","import numpy as np\n","\n","\n","def dist_to_pts(pt_np):\n","    return np.linalg.norm(pt_np, axis=1)\n","\n","\n","def get_name_of_obj_with_min_dist_to_pt(pt_np, obj_names):\n","    min_dist = np.argmin(dist_to_pts(pt_np))\n","    return obj_names[min_dist]\n","\n","Success rate: 2/37 = 0.05\n"]}]},{"cell_type":"code","source":["print('text-curie-001 | Hierarchical Code-Gen | Flat Prompt')\n","\n","query_kwargs = {'engine': 'text-curie-001', 'frequency_penalty': 0.1}\n","\n","f_gens_curie_hc_fp = solve_problems(all_problems, prompt_f_gen_flat, context_vars, recurse=True, bug_fix=True, query_kwargs=query_kwargs)\n","\n","results_curie_hc_fp = eval_problems(all_problems, f_gens_curie_hc_fp)\n","failures_curie_hc_fp = [r for r in results_curie_hc_fp if not r['success']]\n","# for failure in failures_curie_hc_fp:\n","#   print(failure['f_name'], failure['info'], failure['f_gen']['f_src'])"],"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":1000,"referenced_widgets":["a03aa42fcad04534bcefa5af1b4403e6","d3a3c5d5b6934def8bd556593995b754","3c6647993bcf4aff98b6bb96d94e3be5","127bad157eb74cbfbfc407f49f1b7905","ba6378daf3d74445bbc9af39a8ff4101","4a897e46298e40f289c6a0bb38db17e2","a25dbade20a24336bd57f1112960b11d","85170d9821204933b406cf75a98b1093","72c5471891d74aa7b2efcff18e87c28f","88183e2f2c664b2cbdb47637f9cd9b1f","5cba06186ee240af9b61e65339f89237","f308c27fecd34aff8f1bad7b2c824e31","a9476f515ded4bea9d95b0a8cc492b09","7df8df9a8c5f4bba84dd30875b0fc000","6714b9ebd2894e3e952e5b7eba3fdade","5e5efa0aab6f4e7c93e1df44fcd18cb0","83d89c63533f4f0f8ecc645b0292acb9","e4ccdd1dc3464751978bd21359b90b90","bde389a9a27b4babbd6e8b33e9dc2096","df95f823e9534ecba3c643dfc7b020e1","b768f2d508da48ab94dad6741c4a0715","689fa251921549f58ff40f799722c7f0"]},"id":"SgL_Y99asAgV","executionInfo":{"status":"ok","timestamp":1660672462996,"user_tz":240,"elapsed":447226,"user":{"displayName":"Jacky Liang","userId":"05524594537381871813"}},"outputId":"45f47087-7764-40b4-8620-c697cc2ad7a9"},"execution_count":null,"outputs":[{"output_type":"stream","name":"stdout","text":["text-curie-001 | Hierarchical Code-Gen | Flat Prompt\n"]},{"output_type":"display_data","data":{"text/plain":["  0%|          | 0/2 [00:00<?, ?it/s]"],"application/vnd.jupyter.widget-view+json":{"version_major":2,"version_minor":0,"model_id":"a03aa42fcad04534bcefa5af1b4403e6"}},"metadata":{}},{"output_type":"display_data","data":{"text/plain":["  0%|          | 0/37 [00:00<?, ?it/s]"],"application/vnd.jupyter.widget-view+json":{"version_major":2,"version_minor":0,"model_id":"f308c27fecd34aff8f1bad7b2c824e31"}},"metadata":{}},{"output_type":"stream","name":"stdout","text":["get_right_most_idx\n","import numpy as np\n","\n","def get_right_most_idx(points_np, axis=1):\n","  idx = np.argmax(points_np, axis=axis)\n","  return idx\n","\n","get_bbox_xyxy_area\n","import numpy as np\n","\n","def get_bbox_xyxy_area(bbox_xyxy):\n","    xmin, xmax, ymin, ymax = bbox_xyxy.minmax()\n","    return np.array([xmin * np.size(bbox_xyxy), xmax * np.size(bbox_xyxy), ymin * np.size(bbox_xyxy), ymax * np.size(bbox_xyxy)])\n","\n","interpolate_pts_np\n","import numpy as np\n","\n","def interpolate_pts_np(start, end, n):\n","  pts = np.linspace(start, end, n)\n","  return pts\n","\n","reverse_pts\n","import numpy as np\n","\n","\n","def reverse_pts(pts_np):\n","    return pts_np[::-1, :]\n","\n","\n","def get_pts_from_file(file_path):\n","    pts_np = np.loadtxt(file_path, delimiter=',')\n","    return pts_np\n","\n","\n","def save_pts_to_file(pts_np, file_path):\n","    np.savetxt(file_path, pts_np, delimiter=',')\n","\n","\n","def main():\n","    file_path = './data/pts.csv'\n","    pts_np = get_pts_from_file(file_path)\n","    pts_np = reverse_pts(pts_np)\n","    save_pts_to_file(pts_np, file_path)\n","\n","\n","if __name__ == '__main__':\n","    main()\n","\n","normalize_vector\n","import numpy as np\n","\n","\n","def normalize_vector(vector):\n","    return np.array(vector) / np.sum(vector, axis=0)\n","\n","translate_pts_np\n","import numpy as np\n","\n","def translate_pts_np(pts_np, delta_np):\n","    x_shift, y_shift = delta_np.x, delta_np.y\n","    new_pts_np = np.array(pts_np) + np.array([x_shift, y_shift])\n","    return new_pts_np\n","\n","rotate_pts_around_pts_center_np\n","import numpy as np\n","\n","\n","def rotate_pts_around_pts_center_np(pts_np, angle_deg):\n","    new_pts_np = np.array(pts_np)\n","    angle_deg = angle_deg * 2\n","    return new_pts_np\n","\n","scale_pts_around_centroid_np\n","import numpy as np\n","\n","def scale_pts_around_centroid_np(pts_np, scale_x, scale_y):\n","    x_scale, y_scale = scale_x, scale_y\n","    new_pts_np = np.array(pts_np)\n","    # scale points around centroid by given factors\n","    # x-axis is scale_x, y-axis is scale_y\n","    # return new points as np.array\n","    return new_pts_np\n","\n","is_discrete_system_stable\n","import numpy as np\n","\n","\n","def is_discrete_system_stable(A_mat):\n","    # check if the system is stable\n","    # if it is not, then we need to find a point that makes the system stable\n","    # if we can find a point, then the system is stable\n","    eigenvalues = np.linalg.eigvals(A_mat)\n","    for eigenvalue in eigenvalues:\n","        if np.abs(eigenvalue) > 1:\n","            return False\n","    return True\n","\n","\n","def main():\n","    A_mat = np.array([[0.5, 0.5], [0.5, 0.5]])\n","    print(is_discrete_system_stable(A_mat))\n","\n","\n","if __name__ == '__main__':\n","    main()\n","\n","get_direction_orthogonal_to_line_to_point\n","import numpy as np\n","\n","\n","def get_direction_orthogonal_to_line_to_point(line, pt_np):\n","    x, y = pt_np\n","    dx, dy = line.distance(pt_np)  # TODO: check if this is correct\n","    d = np.arctan2(dy, dx)\n","    return x, y, d\n","\n","get_points_from_polygon\n","from shapely.geometry import Polygon\n","\n","\n","def get_points_from_polygon(polygon):\n","    points_np = Polygon(polygon).exterior.coords\n","    return points_np\n","\n","interpolate_pts_along_exterior\n","import numpy as np\n","\n","\n","def interpolate_pts_along_exterior(exterior, n):\n","    pts_coords = np.array(interpolate_pts(exterior, n, t=0.5))\n","    return pts_coords\n","\n","\n","def interpolate_pts(pts, n, t=0.5):\n","    pts_coords = []\n","    for i in range(len(pts) - 1):\n","        x1, y1 = pts[i]\n","        x2, y2 = pts[i + 1]\n","        for j in range(n):\n","            x = (1 - t) * x1 + t * x2\n","            y = (1 - t) * y1 + t * y2\n","            pts_coords.append([x, y])\n","    return pts_coords\n","\n","\n","def main():\n","    pts = [[0, 0], [1, 1], [2, 0]]\n","    n = 2\n","    pts_coords = interpolate_pts_along_exterior(pts, n)\n","    print(pts_coords)\n","\n","\n","if __name__ == '__main__':\n","    main()\n","\n","make_line\n","from shapely.geometry import LineString\n","\n","\n","def make_line(start_pt_np, end_pt_np):\n","    line = LineString([[start_pt_np, end_pt_np], [0, 0]])\n","    return line\n","\n","make_ellipse\n","from matplotlib.patches import Ellipse\n","\n","def make_ellipse(center, major_axis, minor_axis):\n","    ellipse = Ellipse(center, major_axis, minor_axis)\n","    return ellipse\n","\n","get_one_bbox_xyxy_of_all_objs\n","import numpy as np\n","\n","def get_one_bbox_xyxy_of_all_objs(all_obj_names):\n","    x = np.arange(0, len(all_obj_names))\n","    y = np.arange(0, len(all_obj_names))\n","    xbox = np.empty(x, y)\n","    return xbox\n","\n","\n","if __name__ == '__main__':\n","    all_obj_names = ['a', 'b', 'c']\n","    xbox = get_one_bbox_xyxy_of_all_objs(all_obj_names)\n","    print(xbox)\n","\n","Success rate: 1/37 = 0.03\n"]},{"output_type":"stream","name":"stderr","text":["<string>:6: ShapelyDeprecationWarning: The array interface is deprecated and will no longer work in Shapely 2.0. Convert the '.coords' to a numpy array instead.\n","/usr/local/lib/python3.7/dist-packages/numpy/core/numeric.py:2342: FutureWarning: The input object of type 'Point' is an array-like implementing one of the corresponding protocols (`__array__`, `__array_interface__` or `__array_struct__`); but not a sequence (or 0-D). In the future, this object will be coerced as if it was first converted using `np.array(obj)`. To retain the old behaviour, you have to either modify the type 'Point', or assign to an empty array created with `np.empty(correct_shape, dtype=object)`.\n","  y = asanyarray(b)\n","/usr/local/lib/python3.7/dist-packages/numpy/core/numeric.py:2342: VisibleDeprecationWarning: Creating an ndarray from ragged nested sequences (which is a list-or-tuple of lists-or-tuples-or ndarrays with different lengths or shapes) is deprecated. If you meant to do this, you must specify 'dtype=object' when creating the ndarray.\n","  y = asanyarray(b)\n"]}]},{"cell_type":"code","source":["print('text-curie-001 | Flat Code-Gen | Hierarchical Prompt')\n","\n","query_kwargs = {'engine': 'text-curie-001', 'frequency_penalty': 0.1}\n","\n","f_gens_curie_fc_hp = solve_problems(all_problems, prompt_f_gen, context_vars, recurse=False, bug_fix=True, query_kwargs=query_kwargs)\n","\n","results_curie_fc_hp = eval_problems(all_problems, f_gens_curie_fc_hp)\n","failures_curie_fc_hp = [r for r in results_curie_fc_hp if not r['success']]\n","# for failure in failures_curie_fc_hp:\n","#   print(failure['f_name'], failure['info'], failure['f_gen']['f_src'])"],"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":1000,"referenced_widgets":["5da98bf9be58402989fbc9a0d64d0e40","8d6a4fcb9c024159b85ba170757e400b","67eff56db9fa4002b9fe302c9c21749e","83b3e427291c4c4aaf2eb2d6142fdce3","fb64f84bc20c4e34b25a2f787f0b9dd5","09e2ceb00d564828ba54f6b11e66d4e4","cb00c70b3e4c4593af2329c634375e47","00b574dcf8b248e38adf52eed44e2155","feb73e5a8ef44a409898ca8a7fe5615e","3427ff3f1ccd484a928ac279a8222f77","287a5d2608f245e39dffc27e3903a05e","946fb0a6ab7045ab953482daa0f321d0","5cb33157fe474602a61718915f7dc6a7","cc6f10d7868c4aecb5e96921cd1fb1a2","0928b630368c4446b23a50233bfcfc5b","98bc570e400341eeb6e312d52184eca5","4a08dddc0aa34045b052212734b18118","f4d4585139804e31acaa2e025fbbd45d","33f0edee1acb4dfdb793955df0e99d4b","c911d4fb9c954fd6b7abf99cf5a6696e","8d4c42b5b7ab4fb39f99b7693d9cba63","4b65d4b86da543c39fa528c80c40ad8a"]},"id":"ja-8sHXor8TT","executionInfo":{"status":"ok","timestamp":1660672015789,"user_tz":240,"elapsed":374893,"user":{"displayName":"Jacky Liang","userId":"05524594537381871813"}},"outputId":"618b3ba5-13a1-4c5e-fe7a-47634852609f"},"execution_count":null,"outputs":[{"output_type":"stream","name":"stdout","text":["text-curie-001 | Flat Code-Gen | Hierarchical Prompt\n"]},{"output_type":"display_data","data":{"text/plain":["  0%|          | 0/2 [00:00<?, ?it/s]"],"application/vnd.jupyter.widget-view+json":{"version_major":2,"version_minor":0,"model_id":"5da98bf9be58402989fbc9a0d64d0e40"}},"metadata":{}},{"output_type":"display_data","data":{"text/plain":["  0%|          | 0/37 [00:00<?, ?it/s]"],"application/vnd.jupyter.widget-view+json":{"version_major":2,"version_minor":0,"model_id":"946fb0a6ab7045ab953482daa0f321d0"}},"metadata":{}},{"output_type":"stream","name":"stdout","text":["get_bbox_xyxy_area\n","import numpy as np\n","\n","def get_bbox_xyxy_area(bbox_xyxy):\n","    xmin, xmax, ymin, ymax, zmin, zmax = bbox_xyxy\n","    return np.array(xmin*xmax+ymin*ymax+zmin*zmax)\n","\n","interpolate_pts_np\n","import numpy as np\n","\n","def interpolate_pts_np(start, end, n):\n","    pts = np.interp(np.linspace(0, 1, n), [0, 1], [start, end])\n","    return pts\n","\n","reverse_pts\n","import numpy as np\n","\n","\n","def reverse_pts(pts_np):\n","    pts = pts_np[::-1]\n","    return pts\n","\n","\n","def main():\n","    pts = np.array([[1, 2], [3, 4], [5, 6]])\n","    print(pts)\n","    print(reverse_pts(pts))\n","\n","\n","if __name__ == '__main__':\n","    main()\n","\n","normalize_vector\n","import numpy as np\n","\n","\n","def normalize_vector(vector):\n","    return np.array(vector) / np.sum(vector)  # noqa\n","\n","evaluate_pts_2d_from_poly_coeffs\n","import numpy as np\n","\n","\n","def evaluate_pts_2d_from_poly_coeffs(poly_x_coeffs, poly_y_coeffs, ts):\n","    x_coords, y_coords = poly_x_coeffs.shape\n","    x_intercept, y_intercept = poly_y_coeffs.shape\n","\n","    # get the 2D points\n","    pts = pts_2d_np(poly_x_coeffs, poly_y_coeffs, ts)\n","\n","    return pts\n","\n","\n","def pts_2d_np(poly_x_coeffs, poly_y_coeffs, ts):\n","    x_coords, y_coords = poly_x_coeffs.shape\n","    x_intercept, y_intercept = poly_y_coeffs.shape\n","\n","    # get the 2D points\n","    pts = np.zeros((x_coords, y_coords))\n","\n","    return pts\n","\n","get_points_from_polygon\n","import numpy as np\n","\n","\n","def get_points_from_polygon(polygon):\n","    points_np = np.array(polygon.points)\n","    return points_np\n","\n","interpolate_pts_along_exterior\n","import numpy as np\n","\n","def interpolate_pts_along_exterior(exterior, n, t=0.5):\n","    pts_coords = np.array(interpolate_pts(exterior, n, t=t))\n","    return pts_coords\n","\n","def interpolate_pts(exterior, n, t=0.5):\n","    pts = []\n","    for i in range(len(exterior)):\n","        pts.append(interpolate_pt(exterior[i], exterior[(i+1)%len(exterior)], n, t))\n","    return pts\n","\n","def interpolate_pt(pt1, pt2, n, t=0.5):\n","    return pt1 + t*(pt2-pt1)\n","\n","if __name__ == '__main__':\n","    exterior = np.array([[0,0], [1,0], [1,1], [0,1]])\n","    print(interpolate_pts_along_exterior(exterior, 2))\n","\n","interpolate_pts_on_line\n","import numpy as np\n","\n","\n","def interpolate_pts_on_line(line, n):\n","    pts_coords = np.array(line.interpolate(n, normalized=True))\n","    return pts_coords\n","\n","get_one_bbox_xyxy_of_all_objs\n","import numpy as np\n","\n","def get_one_bbox_xyxy_of_all_objs(all_obj_names, obj):\n","    x = 0\n","    y = 0\n","\n","    # loop over all objects in the dataset\n","    for obj in np.ndarray(np.array(all_obj_names)):\n","        # get the bounding box of obj\n","        bbox_xyxy = get_one_bbox_xyxy_of_all_objs(obj)\n","\n","\n","if __name__ == '__main__':\n","    all_obj_names = ['a', 'b', 'c']\n","    obj = 'a'\n","    get_one_bbox_xyxy_of_all_objs(all_obj_names, obj)\n","\n","get_name_of_obj_with_min_dist_to_pt\n","import numpy as np\n","\n","\n","def dist_to_pts(pt_np):\n","    return np.linalg.norm(pt_np, axis=1)\n","\n","\n","def get_name_of_obj_with_min_dist_to_pt(pt_np, obj_names):\n","    min_dist = np.argmin(dist_to_pts(pt_np))\n","    return obj_names[min_dist]\n","\n","Success rate: 2/37 = 0.05\n"]}]},{"cell_type":"code","source":["print('text-curie-001 | Flat Code-Gen | Flat Prompt')\n","\n","query_kwargs = {'engine': 'text-curie-001', 'frequency_penalty': 0.1}\n","\n","f_gens_curie_fc_fp = solve_problems(all_problems, prompt_f_gen_flat, context_vars, recurse=False, bug_fix=True, query_kwargs=query_kwargs)\n","\n","results_curie_fc_fp = eval_problems(all_problems, f_gens_curie_fc_fp)\n","failures_curie_fc_fp = [r for r in results_curie_fc_fp if not r['success']]\n","# for failure in failures_curie_fc_fp:\n","#   print(failure['f_name'], failure['info'], failure['f_gen']['f_src'])"],"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":1000,"referenced_widgets":["02812fe0de814389b6d536f1870b0119","064c7ae7ceb045fe87eeb3ec610b8687","81e1c113443640b3a99660868a2a2d20","fb8890883056480aabd91cbf0e1523d3","0f401d9aeffd4a35af1b0cbf453b811a","cff56a040c7a49ca81876e7215c559ab","a9cd6ab1df5c4dcb9e532a2d58223585","7250ca84145843f2ac991eef537ab99f","be4a5c37d2004a69b4d50ac24e8743d4","9557fcbbf98b4ea3bba7bdcff837aed7","35d66ff04c484f5088154ea4b617aeb8","ca6e4f7e56c14b96be8dfe89a619ec3b","b506347c2f3349159b30cc79a9ec5773","a2852270f79944c8969d82deb58fb0ee","c5b4ded8414042f9b5cedbe800ca52a1","db4d9656736445fba6e2b1859b51e25b","91b78934c7e84d9380ccd7c0d49a2183","a9a828f4637148c8ac09792edeea9c87","e46a2accb04143c8afef644a2dabf93d","33b76bcd0ae345f9b11868577dd565a5","e3f02d470c9c4065aa637130b432f503","0312e5a721824ad2a34ed01ad9e82180"]},"id":"SUVwIxzCWncQ","executionInfo":{"status":"ok","timestamp":1660671427895,"user_tz":240,"elapsed":308874,"user":{"displayName":"Jacky Liang","userId":"05524594537381871813"}},"outputId":"e32532ba-2809-4665-a82c-f0d4e46b5111"},"execution_count":null,"outputs":[{"output_type":"stream","name":"stdout","text":["text-curie-001 | Flat Code-Gen | Flat Prompt\n"]},{"output_type":"display_data","data":{"text/plain":["  0%|          | 0/2 [00:00<?, ?it/s]"],"application/vnd.jupyter.widget-view+json":{"version_major":2,"version_minor":0,"model_id":"02812fe0de814389b6d536f1870b0119"}},"metadata":{}},{"output_type":"display_data","data":{"text/plain":["  0%|          | 0/37 [00:00<?, ?it/s]"],"application/vnd.jupyter.widget-view+json":{"version_major":2,"version_minor":0,"model_id":"ca6e4f7e56c14b96be8dfe89a619ec3b"}},"metadata":{}},{"output_type":"stream","name":"stdout","text":["get_right_most_idx\n","import numpy as np\n","\n","def get_right_most_idx(points_np, axis=1):\n","  idx = np.argmax(points_np, axis=axis)\n","  return idx\n","\n","get_bbox_xyxy_area\n","import numpy as np\n","\n","def get_bbox_xyxy_area(bbox_xyxy):\n","    xmin, xmax, ymin, ymax = bbox_xyxy.minmax()\n","    return np.array([xmin * np.size(bbox_xyxy), xmax * np.size(bbox_xyxy), ymin * np.size(bbox_xyxy), ymax * np.size(bbox_xyxy)])\n","\n","interpolate_pts_np\n","import numpy as np\n","\n","def interpolate_pts_np(start, end, n):\n","  pts = np.linspace(start, end, n)\n","  return pts\n","\n","reverse_pts\n","import numpy as np\n","\n","\n","def reverse_pts(pts_np):\n","    return pts_np[::-1, :]\n","\n","\n","def get_pts_from_file(file_path):\n","    pts_np = np.loadtxt(file_path, delimiter=',')\n","    return pts_np\n","\n","\n","def save_pts_to_file(pts_np, file_path):\n","    np.savetxt(file_path, pts_np, delimiter=',')\n","\n","\n","def main():\n","    file_path = './data/pts.csv'\n","    pts_np = get_pts_from_file(file_path)\n","    pts_np = reverse_pts(pts_np)\n","    save_pts_to_file(pts_np, file_path)\n","\n","\n","if __name__ == '__main__':\n","    main()\n","\n","normalize_vector\n","import numpy as np\n","\n","\n","def normalize_vector(vector):\n","    return np.array(vector) / np.sum(vector, axis=0)\n","\n","rotate_pts_around_pts_center_np\n","import numpy as np\n","\n","\n","def rotate_pts_around_pts_center_np(pts_np, angle_deg):\n","    new_pts_np = np.array(pts_np)\n","    angle_deg = angle_deg * 2\n","    return new_pts_np\n","\n","is_discrete_system_stable\n","import numpy as np\n","\n","\n","def is_discrete_system_stable(A_mat):\n","    # check if the system is stable\n","    # if it is not, then we need to find a point that makes the system stable\n","    # if we can find a point, then the system is stable\n","    eigenvalues = np.linalg.eigvals(A_mat)\n","    for eigenvalue in eigenvalues:\n","        if np.abs(eigenvalue) > 1:\n","            return False\n","    return True\n","\n","\n","def main():\n","    A_mat = np.array([[0.5, 0.5], [0.5, 0.5]])\n","    print(is_discrete_system_stable(A_mat))\n","\n","\n","if __name__ == '__main__':\n","    main()\n","\n","get_direction_orthogonal_to_line_to_point\n","import numpy as np\n","\n","\n","def get_direction_orthogonal_to_line_to_point(line, pt_np):\n","    x, y = pt_np\n","    dx, dy = line.distance(pt_np)  # TODO: check if this is correct\n","    d = np.arctan2(dy, dx)\n","    return x, y, d\n","\n","get_points_from_polygon\n","from shapely.geometry import Polygon\n","\n","\n","def get_points_from_polygon(polygon):\n","    points_np = Polygon(polygon).exterior.coords\n","    return points_np\n","\n","interpolate_pts_along_exterior\n","import numpy as np\n","\n","\n","def interpolate_pts_along_exterior(exterior, n):\n","    pts_coords = np.array(interpolate_pts(exterior, n, t=0.5))\n","    return pts_coords\n","\n","\n","def interpolate_pts(pts, n, t=0.5):\n","    pts_coords = []\n","    for i in range(len(pts) - 1):\n","        x1, y1 = pts[i]\n","        x2, y2 = pts[i + 1]\n","        for j in range(n):\n","            x = (1 - t) * x1 + t * x2\n","            y = (1 - t) * y1 + t * y2\n","            pts_coords.append([x, y])\n","    return pts_coords\n","\n","\n","def main():\n","    pts = [[0, 0], [1, 1], [2, 0]]\n","    n = 2\n","    pts_coords = interpolate_pts_along_exterior(pts, n)\n","    print(pts_coords)\n","\n","\n","if __name__ == '__main__':\n","    main()\n","\n","make_line\n","from shapely.geometry import LineString\n","\n","\n","def make_line(start_pt_np, end_pt_np):\n","    line = LineString([[start_pt_np, end_pt_np], [0, 0]])\n","    return line\n","\n","make_ellipse\n","from matplotlib.patches import Ellipse\n","\n","def make_ellipse(center, major_axis, minor_axis):\n","    ellipse = Ellipse(center, major_axis, minor_axis)\n","    return ellipse\n","\n","get_one_bbox_xyxy_of_all_objs\n","import numpy as np\n","\n","\n","def get_one_bbox_xyxy_of_all_objs(all_obj_names):\n","    x = np.arange(0, len(all_obj_names))\n","    y = np.arange(0, len(all_obj_names))\n","    return x, y\n","\n","Success rate: 1/37 = 0.03\n"]},{"output_type":"stream","name":"stderr","text":["/usr/local/lib/python3.7/dist-packages/shapely/topology.py:19: ShapelyDeprecationWarning: InvalidGeometryError will derive from ShapelyError and not TypeError or ValueError in Shapely 2.0.\n","  raise InvalidGeometryError(\"Null geometry supports no operations\")\n"]}]}],"metadata":{"colab":{"collapsed_sections":["xOLT_SsTqF8C","JOOjBLugdMj9","zxqM5OsnEbrB"],"toc_visible":true,"provenance":[]},"kernelspec":{"display_name":"Python 3","name":"python3"},"language_info":{"name":"python"},"widgets":{"application/vnd.jupyter.widget-state+json":{"c35cf1e1c8314ecc86ae63b2dc48dbc4":{"model_module":"@jupyter-widgets/controls","model_name":"HBoxModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HBoxModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HBoxView","box_style":"","children":["IPY_MODEL_b4d45a2faa2b4c4fb4789262fd5be8db","IPY_MODEL_7c02ffd2aedc44ea9660651bb96a609a","IPY_MODEL_c1ca1b987a7b47368b4e6877ce6bfecc"],"layout":"IPY_MODEL_87dcd29033f742278254b4091d671f20"}},"b4d45a2faa2b4c4fb4789262fd5be8db":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_71b42a0bc2c740e7be1abb4722431131","placeholder":"​","style":"IPY_MODEL_78194213096f44cd9ff05699d5934fa6","value":"100%"}},"7c02ffd2aedc44ea9660651bb96a609a":{"model_module":"@jupyter-widgets/controls","model_name":"FloatProgressModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"FloatProgressModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"ProgressView","bar_style":"success","description":"","description_tooltip":null,"layout":"IPY_MODEL_33932410fdc54f1481abeb4fbc8e3333","max":2,"min":0,"orientation":"horizontal","style":"IPY_MODEL_bda9ccf8b75c49d58c9ad4762368bf7c","value":2}},"c1ca1b987a7b47368b4e6877ce6bfecc":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_8217a0b6a2e641719cd5987ecd41da78","placeholder":"​","style":"IPY_MODEL_71d93541ba76435cb80714dab840b8e6","value":" 2/2 [00:21&lt;00:00, 10.64s/it]"}},"87dcd29033f742278254b4091d671f20":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"71b42a0bc2c740e7be1abb4722431131":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"78194213096f44cd9ff05699d5934fa6":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"33932410fdc54f1481abeb4fbc8e3333":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"bda9ccf8b75c49d58c9ad4762368bf7c":{"model_module":"@jupyter-widgets/controls","model_name":"ProgressStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"ProgressStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","bar_color":null,"description_width":""}},"8217a0b6a2e641719cd5987ecd41da78":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"71d93541ba76435cb80714dab840b8e6":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"91d0afb1d1424699b93032fd063016e3":{"model_module":"@jupyter-widgets/controls","model_name":"HBoxModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HBoxModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HBoxView","box_style":"","children":["IPY_MODEL_efa6a6beafcb43c7aac71fb3de7d0655","IPY_MODEL_d0dad9ca732848ba9df40f3aeded082e","IPY_MODEL_dbd420fc72f5426a92d182d260bea9c2"],"layout":"IPY_MODEL_ee3ca52ef8e046e9a52e49601e897867"}},"efa6a6beafcb43c7aac71fb3de7d0655":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_a13638f85aa74b698810ca69f58fbb79","placeholder":"​","style":"IPY_MODEL_ee2ed6255dfe474fb9c1e22797e2791c","value":"100%"}},"d0dad9ca732848ba9df40f3aeded082e":{"model_module":"@jupyter-widgets/controls","model_name":"FloatProgressModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"FloatProgressModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"ProgressView","bar_style":"success","description":"","description_tooltip":null,"layout":"IPY_MODEL_341a5a68fb8e43e48b97ca8a67baae57","max":2,"min":0,"orientation":"horizontal","style":"IPY_MODEL_a92cb43a2b1248c2b15b5ab11fdb4d1e","value":2}},"dbd420fc72f5426a92d182d260bea9c2":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_c5cd7e256ebf4695a3e2e09375b7b412","placeholder":"​","style":"IPY_MODEL_9739c77d3e2b4241bd1003c765e2b3be","value":" 2/2 [00:16&lt;00:00,  7.47s/it]"}},"ee3ca52ef8e046e9a52e49601e897867":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"a13638f85aa74b698810ca69f58fbb79":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"ee2ed6255dfe474fb9c1e22797e2791c":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"341a5a68fb8e43e48b97ca8a67baae57":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"a92cb43a2b1248c2b15b5ab11fdb4d1e":{"model_module":"@jupyter-widgets/controls","model_name":"ProgressStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"ProgressStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","bar_color":null,"description_width":""}},"c5cd7e256ebf4695a3e2e09375b7b412":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"9739c77d3e2b4241bd1003c765e2b3be":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"ff36260e224b4270ae1b7621bc1fc5f8":{"model_module":"@jupyter-widgets/controls","model_name":"HBoxModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HBoxModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HBoxView","box_style":"","children":["IPY_MODEL_d8c4f96e54d6466b98cac72cc00248a6","IPY_MODEL_8601617e3a344fb78dd70f753ad7e7d8","IPY_MODEL_c579edec585444c5b1f7415a68092b2f"],"layout":"IPY_MODEL_f115cf28775747f2ad7db5be27c574de"}},"d8c4f96e54d6466b98cac72cc00248a6":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_7efd661c30ec41ecbbe3012a4d4f60f0","placeholder":"​","style":"IPY_MODEL_087fac5817e8460e855a08c2d63a7c91","value":"100%"}},"8601617e3a344fb78dd70f753ad7e7d8":{"model_module":"@jupyter-widgets/controls","model_name":"FloatProgressModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"FloatProgressModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"ProgressView","bar_style":"success","description":"","description_tooltip":null,"layout":"IPY_MODEL_966ea387fa1649509355bf56357ea939","max":2,"min":0,"orientation":"horizontal","style":"IPY_MODEL_a8e478f870fa41318553b6f231ed5e7d","value":2}},"c579edec585444c5b1f7415a68092b2f":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_12812101e43a4d8fbb1b4d2a3cf8095a","placeholder":"​","style":"IPY_MODEL_213e6b93f00843559f93e69b7fd5492a","value":" 2/2 [00:13&lt;00:00,  6.37s/it]"}},"f115cf28775747f2ad7db5be27c574de":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"7efd661c30ec41ecbbe3012a4d4f60f0":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"087fac5817e8460e855a08c2d63a7c91":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"966ea387fa1649509355bf56357ea939":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"a8e478f870fa41318553b6f231ed5e7d":{"model_module":"@jupyter-widgets/controls","model_name":"ProgressStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"ProgressStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","bar_color":null,"description_width":""}},"12812101e43a4d8fbb1b4d2a3cf8095a":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"213e6b93f00843559f93e69b7fd5492a":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"44cf31d678fa49de95301b81a46cd058":{"model_module":"@jupyter-widgets/controls","model_name":"HBoxModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HBoxModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HBoxView","box_style":"","children":["IPY_MODEL_fdba76aa7077428bb71dbfd81a4dd8a4","IPY_MODEL_eab85d00a94b4adba55483c6eba0f22c","IPY_MODEL_f9e05dccd56c4469833d87a5210e877f"],"layout":"IPY_MODEL_d71f455af3584382b28d1deda19764fe"}},"fdba76aa7077428bb71dbfd81a4dd8a4":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_9020f2b706c8422f83370d2ac45500dd","placeholder":"​","style":"IPY_MODEL_1c57f26a7d274c3e92afda0c69c94205","value":"100%"}},"eab85d00a94b4adba55483c6eba0f22c":{"model_module":"@jupyter-widgets/controls","model_name":"FloatProgressModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"FloatProgressModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"ProgressView","bar_style":"success","description":"","description_tooltip":null,"layout":"IPY_MODEL_f0ddc927925e4f9d92f52867d57aff64","max":2,"min":0,"orientation":"horizontal","style":"IPY_MODEL_f4d503a9831646fc8ba121964ddc1973","value":2}},"f9e05dccd56c4469833d87a5210e877f":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_f971f0846da949dba231c33db6d21337","placeholder":"​","style":"IPY_MODEL_1654c118995940ffbbda50a06ce2ce62","value":" 2/2 [00:21&lt;00:00, 10.50s/it]"}},"d71f455af3584382b28d1deda19764fe":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"9020f2b706c8422f83370d2ac45500dd":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"1c57f26a7d274c3e92afda0c69c94205":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"f0ddc927925e4f9d92f52867d57aff64":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"f4d503a9831646fc8ba121964ddc1973":{"model_module":"@jupyter-widgets/controls","model_name":"ProgressStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"ProgressStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","bar_color":null,"description_width":""}},"f971f0846da949dba231c33db6d21337":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"1654c118995940ffbbda50a06ce2ce62":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"b88cc0130d6e45efb53b15876adc08cc":{"model_module":"@jupyter-widgets/controls","model_name":"HBoxModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HBoxModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HBoxView","box_style":"","children":["IPY_MODEL_a294c2da0d174cd79798b3deb246d9bf","IPY_MODEL_8c2906e5c5254825bbe40954f05b0038","IPY_MODEL_0c9fd857af744add886aebeaaa37dda0"],"layout":"IPY_MODEL_7f32d9f7992d44adbc45f1b1e5bc7a26"}},"a294c2da0d174cd79798b3deb246d9bf":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_fc20b3b525ec4a3a926e10d98b2e406a","placeholder":"​","style":"IPY_MODEL_58bd91c6d6ae498397715e49e8a9d70a","value":"100%"}},"8c2906e5c5254825bbe40954f05b0038":{"model_module":"@jupyter-widgets/controls","model_name":"FloatProgressModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"FloatProgressModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"ProgressView","bar_style":"success","description":"","description_tooltip":null,"layout":"IPY_MODEL_0f15b9aa919c46068e3f874ee85636a7","max":2,"min":0,"orientation":"horizontal","style":"IPY_MODEL_c44b9624c2164c8daf50b83bd9a8dba7","value":2}},"0c9fd857af744add886aebeaaa37dda0":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_a6aed7e4f0134f8fb84a813eb5f5ccd4","placeholder":"​","style":"IPY_MODEL_b0eefa5f2a4745de8fe83e3586e7568b","value":" 2/2 [00:36&lt;00:00, 17.84s/it]"}},"7f32d9f7992d44adbc45f1b1e5bc7a26":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"fc20b3b525ec4a3a926e10d98b2e406a":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"58bd91c6d6ae498397715e49e8a9d70a":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"0f15b9aa919c46068e3f874ee85636a7":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"c44b9624c2164c8daf50b83bd9a8dba7":{"model_module":"@jupyter-widgets/controls","model_name":"ProgressStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"ProgressStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","bar_color":null,"description_width":""}},"a6aed7e4f0134f8fb84a813eb5f5ccd4":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"b0eefa5f2a4745de8fe83e3586e7568b":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"f1027055235f4858972ca2dda4a58be4":{"model_module":"@jupyter-widgets/controls","model_name":"HBoxModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HBoxModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HBoxView","box_style":"","children":["IPY_MODEL_6491917afb444fb292103895d800664f","IPY_MODEL_d5f7e6281e1d4caa82bb6255a0af75e2","IPY_MODEL_bfd9a45ea8394ea8bd61207a24af9951"],"layout":"IPY_MODEL_81d45125b79f47a8980c5cb4078a7b20"}},"6491917afb444fb292103895d800664f":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_2f9c853f27e443ab82a71280a3c161ed","placeholder":"​","style":"IPY_MODEL_7a316728f2c940ed99b367d1df969dab","value":"100%"}},"d5f7e6281e1d4caa82bb6255a0af75e2":{"model_module":"@jupyter-widgets/controls","model_name":"FloatProgressModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"FloatProgressModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"ProgressView","bar_style":"success","description":"","description_tooltip":null,"layout":"IPY_MODEL_75695341b2084b0d8da307105a5babdd","max":2,"min":0,"orientation":"horizontal","style":"IPY_MODEL_5d7dafb230a944199f3b1e5b4a666b5b","value":2}},"bfd9a45ea8394ea8bd61207a24af9951":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_a3e7b3963ab54be8bb630a8705299049","placeholder":"​","style":"IPY_MODEL_1992d7d5eb354733a52d17344ed60817","value":" 2/2 [00:18&lt;00:00,  9.19s/it]"}},"81d45125b79f47a8980c5cb4078a7b20":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"2f9c853f27e443ab82a71280a3c161ed":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"7a316728f2c940ed99b367d1df969dab":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"75695341b2084b0d8da307105a5babdd":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"5d7dafb230a944199f3b1e5b4a666b5b":{"model_module":"@jupyter-widgets/controls","model_name":"ProgressStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"ProgressStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","bar_color":null,"description_width":""}},"a3e7b3963ab54be8bb630a8705299049":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"1992d7d5eb354733a52d17344ed60817":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"c283275a004948b8b9d6ab803e8a9387":{"model_module":"@jupyter-widgets/controls","model_name":"HBoxModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HBoxModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HBoxView","box_style":"","children":["IPY_MODEL_0100043d502f45d2984763574fff50c7","IPY_MODEL_92e08223abac4050b69408d33f058e7a","IPY_MODEL_733e341cf34f4c3ea3a8956b209d716d"],"layout":"IPY_MODEL_d2399ab1c33b45f39d375f684d078d54"}},"0100043d502f45d2984763574fff50c7":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_549282da7b4c4ac4afdd0a3458867ddd","placeholder":"​","style":"IPY_MODEL_307834635e5e4128a60e581a9c04faf3","value":"100%"}},"92e08223abac4050b69408d33f058e7a":{"model_module":"@jupyter-widgets/controls","model_name":"FloatProgressModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"FloatProgressModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"ProgressView","bar_style":"success","description":"","description_tooltip":null,"layout":"IPY_MODEL_bc75f2f0de4742b7902e856dd80977c7","max":2,"min":0,"orientation":"horizontal","style":"IPY_MODEL_42021f53c136457abd1425c2aedac691","value":2}},"733e341cf34f4c3ea3a8956b209d716d":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_35f2d7f5bce94f859f1d193326f1d9e1","placeholder":"​","style":"IPY_MODEL_001a6a7cceb24dfaa48c1476ea68967b","value":" 2/2 [00:09&lt;00:00,  4.31s/it]"}},"d2399ab1c33b45f39d375f684d078d54":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"549282da7b4c4ac4afdd0a3458867ddd":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"307834635e5e4128a60e581a9c04faf3":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"bc75f2f0de4742b7902e856dd80977c7":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"42021f53c136457abd1425c2aedac691":{"model_module":"@jupyter-widgets/controls","model_name":"ProgressStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"ProgressStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","bar_color":null,"description_width":""}},"35f2d7f5bce94f859f1d193326f1d9e1":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"001a6a7cceb24dfaa48c1476ea68967b":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"5278777eae0449b0a8ae989859e204e1":{"model_module":"@jupyter-widgets/controls","model_name":"HBoxModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HBoxModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HBoxView","box_style":"","children":["IPY_MODEL_471063abd1a1436a93afb09ed6374116","IPY_MODEL_7a64fe169d0a420c908b06b1fb57e1a4","IPY_MODEL_55ce3f35204b4a47b451bcb6a017f190"],"layout":"IPY_MODEL_0634eb31b98a42b19279e27e32ed3052"}},"471063abd1a1436a93afb09ed6374116":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_2842d070c4e04e84ba2b958832283b37","placeholder":"​","style":"IPY_MODEL_bae99a1edf2745e2b3aa575151c20a87","value":"100%"}},"7a64fe169d0a420c908b06b1fb57e1a4":{"model_module":"@jupyter-widgets/controls","model_name":"FloatProgressModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"FloatProgressModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"ProgressView","bar_style":"success","description":"","description_tooltip":null,"layout":"IPY_MODEL_c811f139041743bd849e3b8584eaeb40","max":37,"min":0,"orientation":"horizontal","style":"IPY_MODEL_0494fce6b80a4bacb467858b029c67cf","value":37}},"55ce3f35204b4a47b451bcb6a017f190":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_cabe3e3fc0e84d5787130646cd432e2d","placeholder":"​","style":"IPY_MODEL_870e2edc2dbd4a4ba5566a9524f1287d","value":" 37/37 [04:56&lt;00:00,  7.72s/it]"}},"0634eb31b98a42b19279e27e32ed3052":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"2842d070c4e04e84ba2b958832283b37":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"bae99a1edf2745e2b3aa575151c20a87":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"c811f139041743bd849e3b8584eaeb40":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"0494fce6b80a4bacb467858b029c67cf":{"model_module":"@jupyter-widgets/controls","model_name":"ProgressStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"ProgressStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","bar_color":null,"description_width":""}},"cabe3e3fc0e84d5787130646cd432e2d":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"870e2edc2dbd4a4ba5566a9524f1287d":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"a03aa42fcad04534bcefa5af1b4403e6":{"model_module":"@jupyter-widgets/controls","model_name":"HBoxModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HBoxModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HBoxView","box_style":"","children":["IPY_MODEL_d3a3c5d5b6934def8bd556593995b754","IPY_MODEL_3c6647993bcf4aff98b6bb96d94e3be5","IPY_MODEL_127bad157eb74cbfbfc407f49f1b7905"],"layout":"IPY_MODEL_ba6378daf3d74445bbc9af39a8ff4101"}},"d3a3c5d5b6934def8bd556593995b754":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_4a897e46298e40f289c6a0bb38db17e2","placeholder":"​","style":"IPY_MODEL_a25dbade20a24336bd57f1112960b11d","value":"100%"}},"3c6647993bcf4aff98b6bb96d94e3be5":{"model_module":"@jupyter-widgets/controls","model_name":"FloatProgressModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"FloatProgressModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"ProgressView","bar_style":"success","description":"","description_tooltip":null,"layout":"IPY_MODEL_85170d9821204933b406cf75a98b1093","max":2,"min":0,"orientation":"horizontal","style":"IPY_MODEL_72c5471891d74aa7b2efcff18e87c28f","value":2}},"127bad157eb74cbfbfc407f49f1b7905":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_88183e2f2c664b2cbdb47637f9cd9b1f","placeholder":"​","style":"IPY_MODEL_5cba06186ee240af9b61e65339f89237","value":" 2/2 [00:11&lt;00:00,  5.02s/it]"}},"ba6378daf3d74445bbc9af39a8ff4101":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"4a897e46298e40f289c6a0bb38db17e2":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"a25dbade20a24336bd57f1112960b11d":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"85170d9821204933b406cf75a98b1093":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"72c5471891d74aa7b2efcff18e87c28f":{"model_module":"@jupyter-widgets/controls","model_name":"ProgressStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"ProgressStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","bar_color":null,"description_width":""}},"88183e2f2c664b2cbdb47637f9cd9b1f":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"5cba06186ee240af9b61e65339f89237":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"f308c27fecd34aff8f1bad7b2c824e31":{"model_module":"@jupyter-widgets/controls","model_name":"HBoxModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HBoxModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HBoxView","box_style":"","children":["IPY_MODEL_a9476f515ded4bea9d95b0a8cc492b09","IPY_MODEL_7df8df9a8c5f4bba84dd30875b0fc000","IPY_MODEL_6714b9ebd2894e3e952e5b7eba3fdade"],"layout":"IPY_MODEL_5e5efa0aab6f4e7c93e1df44fcd18cb0"}},"a9476f515ded4bea9d95b0a8cc492b09":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_83d89c63533f4f0f8ecc645b0292acb9","placeholder":"​","style":"IPY_MODEL_e4ccdd1dc3464751978bd21359b90b90","value":"100%"}},"7df8df9a8c5f4bba84dd30875b0fc000":{"model_module":"@jupyter-widgets/controls","model_name":"FloatProgressModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"FloatProgressModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"ProgressView","bar_style":"success","description":"","description_tooltip":null,"layout":"IPY_MODEL_bde389a9a27b4babbd6e8b33e9dc2096","max":37,"min":0,"orientation":"horizontal","style":"IPY_MODEL_df95f823e9534ecba3c643dfc7b020e1","value":37}},"6714b9ebd2894e3e952e5b7eba3fdade":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_b768f2d508da48ab94dad6741c4a0715","placeholder":"​","style":"IPY_MODEL_689fa251921549f58ff40f799722c7f0","value":" 37/37 [05:54&lt;00:00,  9.75s/it]"}},"5e5efa0aab6f4e7c93e1df44fcd18cb0":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"83d89c63533f4f0f8ecc645b0292acb9":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"e4ccdd1dc3464751978bd21359b90b90":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"bde389a9a27b4babbd6e8b33e9dc2096":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"df95f823e9534ecba3c643dfc7b020e1":{"model_module":"@jupyter-widgets/controls","model_name":"ProgressStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"ProgressStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","bar_color":null,"description_width":""}},"b768f2d508da48ab94dad6741c4a0715":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"689fa251921549f58ff40f799722c7f0":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"5da98bf9be58402989fbc9a0d64d0e40":{"model_module":"@jupyter-widgets/controls","model_name":"HBoxModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HBoxModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HBoxView","box_style":"","children":["IPY_MODEL_8d6a4fcb9c024159b85ba170757e400b","IPY_MODEL_67eff56db9fa4002b9fe302c9c21749e","IPY_MODEL_83b3e427291c4c4aaf2eb2d6142fdce3"],"layout":"IPY_MODEL_fb64f84bc20c4e34b25a2f787f0b9dd5"}},"8d6a4fcb9c024159b85ba170757e400b":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_09e2ceb00d564828ba54f6b11e66d4e4","placeholder":"​","style":"IPY_MODEL_cb00c70b3e4c4593af2329c634375e47","value":"100%"}},"67eff56db9fa4002b9fe302c9c21749e":{"model_module":"@jupyter-widgets/controls","model_name":"FloatProgressModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"FloatProgressModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"ProgressView","bar_style":"success","description":"","description_tooltip":null,"layout":"IPY_MODEL_00b574dcf8b248e38adf52eed44e2155","max":2,"min":0,"orientation":"horizontal","style":"IPY_MODEL_feb73e5a8ef44a409898ca8a7fe5615e","value":2}},"83b3e427291c4c4aaf2eb2d6142fdce3":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_3427ff3f1ccd484a928ac279a8222f77","placeholder":"​","style":"IPY_MODEL_287a5d2608f245e39dffc27e3903a05e","value":" 2/2 [00:12&lt;00:00,  5.31s/it]"}},"fb64f84bc20c4e34b25a2f787f0b9dd5":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"09e2ceb00d564828ba54f6b11e66d4e4":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"cb00c70b3e4c4593af2329c634375e47":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"00b574dcf8b248e38adf52eed44e2155":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"feb73e5a8ef44a409898ca8a7fe5615e":{"model_module":"@jupyter-widgets/controls","model_name":"ProgressStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"ProgressStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","bar_color":null,"description_width":""}},"3427ff3f1ccd484a928ac279a8222f77":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"287a5d2608f245e39dffc27e3903a05e":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"946fb0a6ab7045ab953482daa0f321d0":{"model_module":"@jupyter-widgets/controls","model_name":"HBoxModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HBoxModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HBoxView","box_style":"","children":["IPY_MODEL_5cb33157fe474602a61718915f7dc6a7","IPY_MODEL_cc6f10d7868c4aecb5e96921cd1fb1a2","IPY_MODEL_0928b630368c4446b23a50233bfcfc5b"],"layout":"IPY_MODEL_98bc570e400341eeb6e312d52184eca5"}},"5cb33157fe474602a61718915f7dc6a7":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_4a08dddc0aa34045b052212734b18118","placeholder":"​","style":"IPY_MODEL_f4d4585139804e31acaa2e025fbbd45d","value":"100%"}},"cc6f10d7868c4aecb5e96921cd1fb1a2":{"model_module":"@jupyter-widgets/controls","model_name":"FloatProgressModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"FloatProgressModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"ProgressView","bar_style":"success","description":"","description_tooltip":null,"layout":"IPY_MODEL_33f0edee1acb4dfdb793955df0e99d4b","max":37,"min":0,"orientation":"horizontal","style":"IPY_MODEL_c911d4fb9c954fd6b7abf99cf5a6696e","value":37}},"0928b630368c4446b23a50233bfcfc5b":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_8d4c42b5b7ab4fb39f99b7693d9cba63","placeholder":"​","style":"IPY_MODEL_4b65d4b86da543c39fa528c80c40ad8a","value":" 37/37 [06:02&lt;00:00,  9.88s/it]"}},"98bc570e400341eeb6e312d52184eca5":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"4a08dddc0aa34045b052212734b18118":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"f4d4585139804e31acaa2e025fbbd45d":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"33f0edee1acb4dfdb793955df0e99d4b":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"c911d4fb9c954fd6b7abf99cf5a6696e":{"model_module":"@jupyter-widgets/controls","model_name":"ProgressStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"ProgressStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","bar_color":null,"description_width":""}},"8d4c42b5b7ab4fb39f99b7693d9cba63":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"4b65d4b86da543c39fa528c80c40ad8a":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"02812fe0de814389b6d536f1870b0119":{"model_module":"@jupyter-widgets/controls","model_name":"HBoxModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HBoxModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HBoxView","box_style":"","children":["IPY_MODEL_064c7ae7ceb045fe87eeb3ec610b8687","IPY_MODEL_81e1c113443640b3a99660868a2a2d20","IPY_MODEL_fb8890883056480aabd91cbf0e1523d3"],"layout":"IPY_MODEL_0f401d9aeffd4a35af1b0cbf453b811a"}},"064c7ae7ceb045fe87eeb3ec610b8687":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_cff56a040c7a49ca81876e7215c559ab","placeholder":"​","style":"IPY_MODEL_a9cd6ab1df5c4dcb9e532a2d58223585","value":"100%"}},"81e1c113443640b3a99660868a2a2d20":{"model_module":"@jupyter-widgets/controls","model_name":"FloatProgressModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"FloatProgressModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"ProgressView","bar_style":"success","description":"","description_tooltip":null,"layout":"IPY_MODEL_7250ca84145843f2ac991eef537ab99f","max":2,"min":0,"orientation":"horizontal","style":"IPY_MODEL_be4a5c37d2004a69b4d50ac24e8743d4","value":2}},"fb8890883056480aabd91cbf0e1523d3":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_9557fcbbf98b4ea3bba7bdcff837aed7","placeholder":"​","style":"IPY_MODEL_35d66ff04c484f5088154ea4b617aeb8","value":" 2/2 [00:09&lt;00:00,  4.27s/it]"}},"0f401d9aeffd4a35af1b0cbf453b811a":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"cff56a040c7a49ca81876e7215c559ab":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"a9cd6ab1df5c4dcb9e532a2d58223585":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"7250ca84145843f2ac991eef537ab99f":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"be4a5c37d2004a69b4d50ac24e8743d4":{"model_module":"@jupyter-widgets/controls","model_name":"ProgressStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"ProgressStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","bar_color":null,"description_width":""}},"9557fcbbf98b4ea3bba7bdcff837aed7":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"35d66ff04c484f5088154ea4b617aeb8":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"ca6e4f7e56c14b96be8dfe89a619ec3b":{"model_module":"@jupyter-widgets/controls","model_name":"HBoxModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HBoxModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HBoxView","box_style":"","children":["IPY_MODEL_b506347c2f3349159b30cc79a9ec5773","IPY_MODEL_a2852270f79944c8969d82deb58fb0ee","IPY_MODEL_c5b4ded8414042f9b5cedbe800ca52a1"],"layout":"IPY_MODEL_db4d9656736445fba6e2b1859b51e25b"}},"b506347c2f3349159b30cc79a9ec5773":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_91b78934c7e84d9380ccd7c0d49a2183","placeholder":"​","style":"IPY_MODEL_a9a828f4637148c8ac09792edeea9c87","value":"100%"}},"a2852270f79944c8969d82deb58fb0ee":{"model_module":"@jupyter-widgets/controls","model_name":"FloatProgressModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"FloatProgressModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"ProgressView","bar_style":"success","description":"","description_tooltip":null,"layout":"IPY_MODEL_e46a2accb04143c8afef644a2dabf93d","max":37,"min":0,"orientation":"horizontal","style":"IPY_MODEL_33b76bcd0ae345f9b11868577dd565a5","value":37}},"c5b4ded8414042f9b5cedbe800ca52a1":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_e3f02d470c9c4065aa637130b432f503","placeholder":"​","style":"IPY_MODEL_0312e5a721824ad2a34ed01ad9e82180","value":" 37/37 [04:59&lt;00:00,  8.46s/it]"}},"db4d9656736445fba6e2b1859b51e25b":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"91b78934c7e84d9380ccd7c0d49a2183":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"a9a828f4637148c8ac09792edeea9c87":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"e46a2accb04143c8afef644a2dabf93d":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"33b76bcd0ae345f9b11868577dd565a5":{"model_module":"@jupyter-widgets/controls","model_name":"ProgressStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"ProgressStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","bar_color":null,"description_width":""}},"e3f02d470c9c4065aa637130b432f503":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"0312e5a721824ad2a34ed01ad9e82180":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"47a17d004add454caa96f46da4e856d1":{"model_module":"@jupyter-widgets/controls","model_name":"HBoxModel","model_module_version":"2.0.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"2.0.0","_model_name":"HBoxModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"2.0.0","_view_name":"HBoxView","box_style":"","children":["IPY_MODEL_eb3cee9264104af9adacdfc2704cef2e","IPY_MODEL_b38393b61363474180a18c3e6f8d820e","IPY_MODEL_3b6de774fd90468eb8e7158dddc71098"],"layout":"IPY_MODEL_55ec19e6ca494957b89b1bb96a4c81db","tabbable":null,"tooltip":null}},"eb3cee9264104af9adacdfc2704cef2e":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"2.0.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"2.0.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"2.0.0","_view_name":"HTMLView","description":"","description_allow_html":false,"layout":"IPY_MODEL_475f1f93f8b04dffaefa9c2f20465510","placeholder":"​","style":"IPY_MODEL_ca8ed16e1e1a49d59da461541c1b6e0c","tabbable":null,"tooltip":null,"value":"100%"}},"b38393b61363474180a18c3e6f8d820e":{"model_module":"@jupyter-widgets/controls","model_name":"FloatProgressModel","model_module_version":"2.0.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"2.0.0","_model_name":"FloatProgressModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"2.0.0","_view_name":"ProgressView","bar_style":"success","description":"","description_allow_html":false,"layout":"IPY_MODEL_b6c83decdf1449099687241b80fa9374","max":2,"min":0,"orientation":"horizontal","style":"IPY_MODEL_d889e6ff03af4bd481f3e6395363c1ba","tabbable":null,"tooltip":null,"value":2}},"3b6de774fd90468eb8e7158dddc71098":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"2.0.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"2.0.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"2.0.0","_view_name":"HTMLView","description":"","description_allow_html":false,"layout":"IPY_MODEL_89acb4915a1244d583bb9932d196c640","placeholder":"​","style":"IPY_MODEL_8e8d5b4ac5cf4310b256bfdf01a95abd","tabbable":null,"tooltip":null,"value":" 2/2 [00:26&lt;00:00, 12.45s/it]"}},"55ec19e6ca494957b89b1bb96a4c81db":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"2.0.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"2.0.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"2.0.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border_bottom":null,"border_left":null,"border_right":null,"border_top":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"475f1f93f8b04dffaefa9c2f20465510":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"2.0.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"2.0.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"2.0.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border_bottom":null,"border_left":null,"border_right":null,"border_top":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"ca8ed16e1e1a49d59da461541c1b6e0c":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLStyleModel","model_module_version":"2.0.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"2.0.0","_model_name":"HTMLStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"2.0.0","_view_name":"StyleView","background":null,"description_width":"","font_size":null,"text_color":null}},"b6c83decdf1449099687241b80fa9374":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"2.0.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"2.0.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"2.0.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border_bottom":null,"border_left":null,"border_right":null,"border_top":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"d889e6ff03af4bd481f3e6395363c1ba":{"model_module":"@jupyter-widgets/controls","model_name":"ProgressStyleModel","model_module_version":"2.0.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"2.0.0","_model_name":"ProgressStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"2.0.0","_view_name":"StyleView","bar_color":null,"description_width":""}},"89acb4915a1244d583bb9932d196c640":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"2.0.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"2.0.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"2.0.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border_bottom":null,"border_left":null,"border_right":null,"border_top":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"8e8d5b4ac5cf4310b256bfdf01a95abd":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLStyleModel","model_module_version":"2.0.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"2.0.0","_model_name":"HTMLStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"2.0.0","_view_name":"StyleView","background":null,"description_width":"","font_size":null,"text_color":null}},"659f787564654704aa4f59fb01649d35":{"model_module":"@jupyter-widgets/controls","model_name":"HBoxModel","model_module_version":"2.0.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"2.0.0","_model_name":"HBoxModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"2.0.0","_view_name":"HBoxView","box_style":"","children":["IPY_MODEL_301a7072cf7d42c6acdf6775f25601f9","IPY_MODEL_87caab83072c48debd247bc53959f48f","IPY_MODEL_de27b8f62a48498dbcf3d6bfc28a287a"],"layout":"IPY_MODEL_04d142e21e44467cb023a0a35a267799","tabbable":null,"tooltip":null}},"301a7072cf7d42c6acdf6775f25601f9":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"2.0.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"2.0.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"2.0.0","_view_name":"HTMLView","description":"","description_allow_html":false,"layout":"IPY_MODEL_adffc42a8adb4fa3b92a387a443183d7","placeholder":"​","style":"IPY_MODEL_2d0c3febe6384d6c8a74776da42d069a","tabbable":null,"tooltip":null,"value":"100%"}},"87caab83072c48debd247bc53959f48f":{"model_module":"@jupyter-widgets/controls","model_name":"FloatProgressModel","model_module_version":"2.0.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"2.0.0","_model_name":"FloatProgressModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"2.0.0","_view_name":"ProgressView","bar_style":"success","description":"","description_allow_html":false,"layout":"IPY_MODEL_3a08f7d15e31468a99f6fab2360ad2ab","max":2,"min":0,"orientation":"horizontal","style":"IPY_MODEL_43c9226d5c1b46418d8d2c571583236a","tabbable":null,"tooltip":null,"value":2}},"de27b8f62a48498dbcf3d6bfc28a287a":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"2.0.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"2.0.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"2.0.0","_view_name":"HTMLView","description":"","description_allow_html":false,"layout":"IPY_MODEL_357fc2d3c9ae48e3a3ce9f668182aaaf","placeholder":"​","style":"IPY_MODEL_0c0498809f5b40e1a1fd89406acb370b","tabbable":null,"tooltip":null,"value":" 2/2 [00:21&lt;00:00, 10.32s/it]"}},"04d142e21e44467cb023a0a35a267799":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"2.0.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"2.0.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"2.0.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border_bottom":null,"border_left":null,"border_right":null,"border_top":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"adffc42a8adb4fa3b92a387a443183d7":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"2.0.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"2.0.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"2.0.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border_bottom":null,"border_left":null,"border_right":null,"border_top":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"2d0c3febe6384d6c8a74776da42d069a":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLStyleModel","model_module_version":"2.0.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"2.0.0","_model_name":"HTMLStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"2.0.0","_view_name":"StyleView","background":null,"description_width":"","font_size":null,"text_color":null}},"3a08f7d15e31468a99f6fab2360ad2ab":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"2.0.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"2.0.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"2.0.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border_bottom":null,"border_left":null,"border_right":null,"border_top":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"43c9226d5c1b46418d8d2c571583236a":{"model_module":"@jupyter-widgets/controls","model_name":"ProgressStyleModel","model_module_version":"2.0.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"2.0.0","_model_name":"ProgressStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"2.0.0","_view_name":"StyleView","bar_color":null,"description_width":""}},"357fc2d3c9ae48e3a3ce9f668182aaaf":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"2.0.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"2.0.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"2.0.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border_bottom":null,"border_left":null,"border_right":null,"border_top":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"0c0498809f5b40e1a1fd89406acb370b":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLStyleModel","model_module_version":"2.0.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"2.0.0","_model_name":"HTMLStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"2.0.0","_view_name":"StyleView","background":null,"description_width":"","font_size":null,"text_color":null}},"25debd255405487a8085b804aa17c4b4":{"model_module":"@jupyter-widgets/controls","model_name":"HBoxModel","model_module_version":"2.0.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"2.0.0","_model_name":"HBoxModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"2.0.0","_view_name":"HBoxView","box_style":"","children":["IPY_MODEL_1ed251b4395b4b83b79246c5e2ad3058","IPY_MODEL_b7c1da4243fd42d3bd27b1ef3beb4b67","IPY_MODEL_0457d429ea034266bb6cba4947ec7e66"],"layout":"IPY_MODEL_3a8b9f0e1eb145da8036bc7bc62df5b2","tabbable":null,"tooltip":null}},"1ed251b4395b4b83b79246c5e2ad3058":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"2.0.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"2.0.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"2.0.0","_view_name":"HTMLView","description":"","description_allow_html":false,"layout":"IPY_MODEL_500afb30585e4795813126d0c75664c0","placeholder":"​","style":"IPY_MODEL_17bb6a8519074e33b7374f64037ec42e","tabbable":null,"tooltip":null,"value":"100%"}},"b7c1da4243fd42d3bd27b1ef3beb4b67":{"model_module":"@jupyter-widgets/controls","model_name":"FloatProgressModel","model_module_version":"2.0.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"2.0.0","_model_name":"FloatProgressModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"2.0.0","_view_name":"ProgressView","bar_style":"success","description":"","description_allow_html":false,"layout":"IPY_MODEL_4cbf967b1c964a3db1e9bfb90d75bd18","max":2,"min":0,"orientation":"horizontal","style":"IPY_MODEL_6fd3f39ea615475aaff25ad861165ff5","tabbable":null,"tooltip":null,"value":2}},"0457d429ea034266bb6cba4947ec7e66":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"2.0.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"2.0.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"2.0.0","_view_name":"HTMLView","description":"","description_allow_html":false,"layout":"IPY_MODEL_ce8882ca6ffb4ce08ff0fdcede2adf9d","placeholder":"​","style":"IPY_MODEL_f3ef4032078e49afa09e7e24e77a19e1","tabbable":null,"tooltip":null,"value":" 2/2 [00:16&lt;00:00,  7.66s/it]"}},"3a8b9f0e1eb145da8036bc7bc62df5b2":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"2.0.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"2.0.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"2.0.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border_bottom":null,"border_left":null,"border_right":null,"border_top":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"500afb30585e4795813126d0c75664c0":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"2.0.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"2.0.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"2.0.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border_bottom":null,"border_left":null,"border_right":null,"border_top":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"17bb6a8519074e33b7374f64037ec42e":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLStyleModel","model_module_version":"2.0.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"2.0.0","_model_name":"HTMLStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"2.0.0","_view_name":"StyleView","background":null,"description_width":"","font_size":null,"text_color":null}},"4cbf967b1c964a3db1e9bfb90d75bd18":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"2.0.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"2.0.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"2.0.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border_bottom":null,"border_left":null,"border_right":null,"border_top":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"6fd3f39ea615475aaff25ad861165ff5":{"model_module":"@jupyter-widgets/controls","model_name":"ProgressStyleModel","model_module_version":"2.0.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"2.0.0","_model_name":"ProgressStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"2.0.0","_view_name":"StyleView","bar_color":null,"description_width":""}},"ce8882ca6ffb4ce08ff0fdcede2adf9d":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"2.0.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"2.0.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"2.0.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border_bottom":null,"border_left":null,"border_right":null,"border_top":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"f3ef4032078e49afa09e7e24e77a19e1":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLStyleModel","model_module_version":"2.0.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"2.0.0","_model_name":"HTMLStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"2.0.0","_view_name":"StyleView","background":null,"description_width":"","font_size":null,"text_color":null}},"1da51d9dbe5044b2a07cfa987dc9d95b":{"model_module":"@jupyter-widgets/controls","model_name":"HBoxModel","model_module_version":"2.0.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"2.0.0","_model_name":"HBoxModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"2.0.0","_view_name":"HBoxView","box_style":"","children":["IPY_MODEL_2fc6bcb7631449cb9e497ab90e3d1542","IPY_MODEL_608bd2ab8bd44d0a9907fa95679102ef","IPY_MODEL_6bf71518b1bb414d8651a45088f16e61"],"layout":"IPY_MODEL_a5c8a289361a4d9cafe302379e000773","tabbable":null,"tooltip":null}},"2fc6bcb7631449cb9e497ab90e3d1542":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"2.0.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"2.0.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"2.0.0","_view_name":"HTMLView","description":"","description_allow_html":false,"layout":"IPY_MODEL_985d2f3cc03847b5af4e74b56672d9bc","placeholder":"​","style":"IPY_MODEL_93a5bdfa3973490fb367716f40da099c","tabbable":null,"tooltip":null,"value":"100%"}},"608bd2ab8bd44d0a9907fa95679102ef":{"model_module":"@jupyter-widgets/controls","model_name":"FloatProgressModel","model_module_version":"2.0.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"2.0.0","_model_name":"FloatProgressModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"2.0.0","_view_name":"ProgressView","bar_style":"success","description":"","description_allow_html":false,"layout":"IPY_MODEL_80b2e3e36aa44d93a88bdbd2d359aa5c","max":2,"min":0,"orientation":"horizontal","style":"IPY_MODEL_7aed3dda4ff04072abf0b5d5fa72d5d9","tabbable":null,"tooltip":null,"value":2}},"6bf71518b1bb414d8651a45088f16e61":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"2.0.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"2.0.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"2.0.0","_view_name":"HTMLView","description":"","description_allow_html":false,"layout":"IPY_MODEL_4bbc7636d2e24b6ba39385aa4b2aff71","placeholder":"​","style":"IPY_MODEL_1a2a37a2e5dd45af8973bc4fba0a5f59","tabbable":null,"tooltip":null,"value":" 2/2 [00:14&lt;00:00,  6.85s/it]"}},"a5c8a289361a4d9cafe302379e000773":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"2.0.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"2.0.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"2.0.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border_bottom":null,"border_left":null,"border_right":null,"border_top":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"985d2f3cc03847b5af4e74b56672d9bc":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"2.0.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"2.0.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"2.0.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border_bottom":null,"border_left":null,"border_right":null,"border_top":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"93a5bdfa3973490fb367716f40da099c":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLStyleModel","model_module_version":"2.0.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"2.0.0","_model_name":"HTMLStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"2.0.0","_view_name":"StyleView","background":null,"description_width":"","font_size":null,"text_color":null}},"80b2e3e36aa44d93a88bdbd2d359aa5c":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"2.0.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"2.0.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"2.0.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border_bottom":null,"border_left":null,"border_right":null,"border_top":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"7aed3dda4ff04072abf0b5d5fa72d5d9":{"model_module":"@jupyter-widgets/controls","model_name":"ProgressStyleModel","model_module_version":"2.0.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"2.0.0","_model_name":"ProgressStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"2.0.0","_view_name":"StyleView","bar_color":null,"description_width":""}},"4bbc7636d2e24b6ba39385aa4b2aff71":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"2.0.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"2.0.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"2.0.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border_bottom":null,"border_left":null,"border_right":null,"border_top":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"1a2a37a2e5dd45af8973bc4fba0a5f59":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLStyleModel","model_module_version":"2.0.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"2.0.0","_model_name":"HTMLStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"2.0.0","_view_name":"StyleView","background":null,"description_width":"","font_size":null,"text_color":null}},"e26447f06a034c969a0568677229e1f7":{"model_module":"@jupyter-widgets/controls","model_name":"HBoxModel","model_module_version":"2.0.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"2.0.0","_model_name":"HBoxModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"2.0.0","_view_name":"HBoxView","box_style":"","children":["IPY_MODEL_9beaf3ed500c4f9d8e1ea1995a847f32","IPY_MODEL_fab167bd9a23480eb496bad1ce8f0cd1","IPY_MODEL_ad9e5889e5644d099abd9a49651d1d54"],"layout":"IPY_MODEL_b0a144935a2741438ba5b4afc5aa4b02","tabbable":null,"tooltip":null}},"9beaf3ed500c4f9d8e1ea1995a847f32":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"2.0.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"2.0.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"2.0.0","_view_name":"HTMLView","description":"","description_allow_html":false,"layout":"IPY_MODEL_0d7c6d39cb644dc3b92f31499c1516d4","placeholder":"​","style":"IPY_MODEL_c5aaf78ec1a6401195492d20601b24db","tabbable":null,"tooltip":null,"value":"100%"}},"fab167bd9a23480eb496bad1ce8f0cd1":{"model_module":"@jupyter-widgets/controls","model_name":"FloatProgressModel","model_module_version":"2.0.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"2.0.0","_model_name":"FloatProgressModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"2.0.0","_view_name":"ProgressView","bar_style":"success","description":"","description_allow_html":false,"layout":"IPY_MODEL_b75670e96370421588cd93e14d48cbdd","max":2,"min":0,"orientation":"horizontal","style":"IPY_MODEL_0781cb18cf1a4306aa9a2c86484d6ac9","tabbable":null,"tooltip":null,"value":2}},"ad9e5889e5644d099abd9a49651d1d54":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"2.0.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"2.0.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"2.0.0","_view_name":"HTMLView","description":"","description_allow_html":false,"layout":"IPY_MODEL_37821b1ff0c247129201f693cb7f4df0","placeholder":"​","style":"IPY_MODEL_000c26669a274d009ffbcb664b285a71","tabbable":null,"tooltip":null,"value":" 2/2 [00:21&lt;00:00, 10.35s/it]"}},"b0a144935a2741438ba5b4afc5aa4b02":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"2.0.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"2.0.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"2.0.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border_bottom":null,"border_left":null,"border_right":null,"border_top":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"0d7c6d39cb644dc3b92f31499c1516d4":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"2.0.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"2.0.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"2.0.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border_bottom":null,"border_left":null,"border_right":null,"border_top":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"c5aaf78ec1a6401195492d20601b24db":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLStyleModel","model_module_version":"2.0.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"2.0.0","_model_name":"HTMLStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"2.0.0","_view_name":"StyleView","background":null,"description_width":"","font_size":null,"text_color":null}},"b75670e96370421588cd93e14d48cbdd":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"2.0.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"2.0.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"2.0.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border_bottom":null,"border_left":null,"border_right":null,"border_top":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"0781cb18cf1a4306aa9a2c86484d6ac9":{"model_module":"@jupyter-widgets/controls","model_name":"ProgressStyleModel","model_module_version":"2.0.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"2.0.0","_model_name":"ProgressStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"2.0.0","_view_name":"StyleView","bar_color":null,"description_width":""}},"37821b1ff0c247129201f693cb7f4df0":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"2.0.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"2.0.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"2.0.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border_bottom":null,"border_left":null,"border_right":null,"border_top":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"000c26669a274d009ffbcb664b285a71":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLStyleModel","model_module_version":"2.0.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"2.0.0","_model_name":"HTMLStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"2.0.0","_view_name":"StyleView","background":null,"description_width":"","font_size":null,"text_color":null}},"74ebf65b7cfd485ebf589292121fa98a":{"model_module":"@jupyter-widgets/controls","model_name":"HBoxModel","model_module_version":"2.0.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"2.0.0","_model_name":"HBoxModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"2.0.0","_view_name":"HBoxView","box_style":"","children":["IPY_MODEL_793fc71d9d3a42deb7930e6a65671dc1","IPY_MODEL_7dfcce7ba3eb40f989119f2daf09fbb3","IPY_MODEL_7caa852f2eb442ad85e1d9c5e002b88f"],"layout":"IPY_MODEL_b4685276204b4697945a96ec48771d0f","tabbable":null,"tooltip":null}},"793fc71d9d3a42deb7930e6a65671dc1":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"2.0.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"2.0.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"2.0.0","_view_name":"HTMLView","description":"","description_allow_html":false,"layout":"IPY_MODEL_5b8a69be83964fc59e99ae6712878a50","placeholder":"​","style":"IPY_MODEL_fa9e527f5d464f18aca663ad2ef60ce9","tabbable":null,"tooltip":null,"value":"100%"}},"7dfcce7ba3eb40f989119f2daf09fbb3":{"model_module":"@jupyter-widgets/controls","model_name":"FloatProgressModel","model_module_version":"2.0.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"2.0.0","_model_name":"FloatProgressModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"2.0.0","_view_name":"ProgressView","bar_style":"success","description":"","description_allow_html":false,"layout":"IPY_MODEL_35a600774d6a465b9a13338471be4c41","max":2,"min":0,"orientation":"horizontal","style":"IPY_MODEL_11022481ac77450e8014ca478ff524e3","tabbable":null,"tooltip":null,"value":2}},"7caa852f2eb442ad85e1d9c5e002b88f":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"2.0.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"2.0.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"2.0.0","_view_name":"HTMLView","description":"","description_allow_html":false,"layout":"IPY_MODEL_7f69c42b2ea843cf95e4ec2ca2fc7627","placeholder":"​","style":"IPY_MODEL_a0406664202f4ad28a79afe65795aa33","tabbable":null,"tooltip":null,"value":" 2/2 [00:30&lt;00:00, 14.08s/it]"}},"b4685276204b4697945a96ec48771d0f":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"2.0.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"2.0.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"2.0.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border_bottom":null,"border_left":null,"border_right":null,"border_top":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"5b8a69be83964fc59e99ae6712878a50":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"2.0.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"2.0.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"2.0.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border_bottom":null,"border_left":null,"border_right":null,"border_top":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"fa9e527f5d464f18aca663ad2ef60ce9":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLStyleModel","model_module_version":"2.0.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"2.0.0","_model_name":"HTMLStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"2.0.0","_view_name":"StyleView","background":null,"description_width":"","font_size":null,"text_color":null}},"35a600774d6a465b9a13338471be4c41":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"2.0.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"2.0.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"2.0.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border_bottom":null,"border_left":null,"border_right":null,"border_top":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"11022481ac77450e8014ca478ff524e3":{"model_module":"@jupyter-widgets/controls","model_name":"ProgressStyleModel","model_module_version":"2.0.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"2.0.0","_model_name":"ProgressStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"2.0.0","_view_name":"StyleView","bar_color":null,"description_width":""}},"7f69c42b2ea843cf95e4ec2ca2fc7627":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"2.0.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"2.0.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"2.0.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border_bottom":null,"border_left":null,"border_right":null,"border_top":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"a0406664202f4ad28a79afe65795aa33":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLStyleModel","model_module_version":"2.0.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"2.0.0","_model_name":"HTMLStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"2.0.0","_view_name":"StyleView","background":null,"description_width":"","font_size":null,"text_color":null}}}}},"nbformat":4,"nbformat_minor":0}